Język od Google? Możliwości?

0

Witam!

Zacznę od krótkiego przedstawienia się.

Jestem calif, zafascynował mnie język Go od Google. Postanowiłem się w niego zagłębić.

I oto wychodzę do Was z propozycją i zarazem reklamą.

Propozycja jest taka, iż oferuję Wam współpracę w zakresie tworzenia polskiego supportu Go.
Mamy już zapewnioną domenę, serwer (a także parę lekcji dot. języka GO etc.) i wszystkie potrzebne rzeczy także zostaną nam zapewnione. Do tego, mamy kontakt z jednym z głównych przedstawicieli środowiska programistów Google - a dokładnie programowania w GO. Mamy plan rozwoju supportu, zapewnioną reklamę na oficjalnej stronie Google Go (http://golang.org - jeśli tylko spełnimy parę warunków), wywiady z programistami Google i niezwykle otwartą drogę rozwoju.

Potrzebni są jedynie dobrzy programiści, chętni do poznawania nowych ludzi, nowego języka. Potrzebujemy ludzi chętnych do pracy, pasjonatów, zapaleńców. :)

Gorąco zapraszam do dyskusji w tym temacie, oraz do odwiedzania strony: http://googlego.info/

Można się ze mną skontaktować poprzez PW oraz GG: 477119 .

Pozdrawiam!
calif

2

witam. a ja zadam najprostsze pytanie: po co?
to znaczy jakie ten język ma zastosowanie, w czym jest lepszy od poprzedników, co można w nim zrobić szybciej niż w innych językach.
czyli proszę o przedstawienie zajebistości tego języka ;)

0
calif napisał(a)

Mamy już zapewnioną domenę, serwer (a także pare lekcji dot. języka GO etc.) i wszystkie potrzebne rzeczy także zostaną nam zapewnione. Do tego, mamy kontakt z jednym z głównych przedstawicieli środowiska programistów Google - a dokładnie programowania w GO. Mamy plan rozwoju supportu, zapewnioną reklamę na oficjalnej stronie Google Go (golang.org - jeśli tylko spełnimy pare warunków), wywiady z programistami Google i niezwykle otwartą drogę rozwoju.

Po wyglądzie strony w 90% nie wierzę w to, co napisałeś.

0

a ja jestem ciekaw wyniku który osiągnięcie za 2-3 miechy. Sam nie będe się rozdrabniał i poznawał czegos nowego jak w Javie jest tyle rzeczy jeszcze przeze nie nie poznanych....

0

Wygląd strony o niczym nie świadczy. Jest prosty, po co wydawać fortunę na grafikę?

Jeśli nie wierzycie, mogę na prywatności pokazać maila od przedstawiciela programistów Google.

Czemu polecam język?

Jest szybki, testowałem to wiele razy, programy wykonują się o wiele szybciej.
Bezpieczny - żadne Buffer Overflow'y itp.

Mniej pamięci potrzebują.

Programowanie staje się prawdziwą przyjemnością.

Pozdrawiam!

0

O wiele szybszy od czego?

http://shootout.alioth.debian.org/u64q/benchmark.php?test=all&lang=go&lang2=java

Prędkość porównywalna z Javą, żre mniej pamięci, ale Java jest 100x większą platformą niż jakieś Go.

0

Na razie jest większą platformą. :)

0

a ile nieskończonych pętli wykona na sekundę?

0

Haha odporny na buffer overflow no i co ? Po pierwsze to do czasu, jeżeli tylko ten język będzie używany do tworzenia różnego oprogramowania to się dziury znajdą i nie będzie odporny na nic :-D

0
calif napisał(a)

Na razie jest większą platformą. :)

Tzn? Ile razy więcej napisano w Go niż w Javie?

0

Chyba niepoprawne pytanie "ile razy", bo 0 * x = 0.

0

niee, na pytanie "ile razy" MOŻNA odpowiedzieć zero :)

Przyglądnąłem się stronce z pierwszego posta: cudo. A ja myślałem, że to ja potworki rysuję :P
Wygląda jak strony początkujących pseudoprogramistów. Dwa kwadraty, ZAJE**TA nie-systemowa czcionka jako "logo". Za to czarne napisy na ciemnoniebieskim tle [!] to akurat nie taki standard, innowacyjność godna strony innowacyjnego języka :)

A teraz pomęczymy tekst na stronie głównej:

Programy w Go są:

  • szybsze,
  • bezpieczniejsze,
  • lekkie

Wszystko zależy od programisty. Nie napiszesz chyba kompilatora, który naprawi wszystkie błędy za programistę? Wystarczy, żeby program używał bazy danych - prosty SQL Injection i każdy powie, że program do dolnych części ciała można wsadzić :) To samo z szybkością i lekkością (chodzi o RAM?).

  • łatwe (w czytaniu)

Codziennie studiuję kody źródłowe przynajmniej 3 aplikacji ;) O dziwo - nie mam problemów z tymi w C# czy innym chociażby PHP.

Język Go doskonale nadaje się na platformy swerowe

Czy chodziło Ci o: platformy serowe

do codziennego użytku - ze względu na łatwość czytania

Wcześniej myślałem, że ktoś napisze, że tam wyżej chodziło o programistów robiących modyfikacje itd itd, a nie, że codziennie - a teraz widzę, że jednak codziennie mam przeglądać piękny kod w Go! ;)

łatwość budowania nowych funkcji

to naprawdę nie ma sensu, co może być prostsze od:

function hw() {
  // kod
}

[łatwość] importowania pakietów

jeden język ma "use", drugi "import", trzeci jeszcze coś.. jeszcze łatwiej?!

łatwość pisania oraz działania

hmm..

Kompilator Go tworzy plik wykonywalny o wiele szybciej niż w przypadku innych języków programowania.

Nie programuję nie wiadomo ile, ale nie słyszałem o problemach, żeby ktoś narzekał na długą kompilację (sprawdź google: "długo kompiluje") - biblioteki kompilujesz osobno, potem tylko wykonywalny, a biblioteki importujesz.. nie rozumiem o co chodzi (znowu).

Minusy?
Nie widzę minus,

Kup okulary (np. minusy).

PODSUMOWANIE:

przekonajcie się o tym sami!

dziękuję, postoję :) albo idę dokształcać się w języku, za pisanie w którym ktoś mi kiedyś zapłaci..

Dobra, powyzłośliwiłem się na dzisiaj :) (także somekind się nie martw - dziś Ci się nie oberwie już)

0

Cóż, nieźle się napracowałeś pisząc tego posta, ale po co? :)

Nie zamierzałem tutaj przekonywać do innowacyjnej grafiki, lecz do samego języka.

No nic, temat do zamknięcie, pozdrawiam serdecznie!
:)

1

Ten Go to następca C - został zainspirowany C, C++, Java,Pythonem, Ruby, Erlangiem.... Posiada wszystkie cech nowoczesnych języków min. programowanie równoległe, Unicode etc... co mnie osobiście się bardzo podoba.
Jak go sobie zainstalujecie to w katalogu:
**go\src\pkg * *można sobie obejrzeć cały kod biblioteki standardowej. Np. W katalogu: go\src\pkg\math można sobie zobaczyć jak zostały napisane standardowe funkcje matematyczne:

// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package math

// Abs returns the absolute value of x.
//
// Special cases are:
//	Abs(±Inf) = +Inf
//	Abs(NaN) = NaN
func Abs(x float64) float64

func abs(x float64) float64 {
	switch {
	case x < 0:
		return -x
	case x == 0:
		return 0 // return correctly abs(-0)
	}
	return x
}

Co ciekawe pliki źródłowe podpisane są jako: "Copyright 2009 The Go Authors" ale mi udało się trafić na pliki z podpisem "Sun Microsystems"....

Jednym z celów twórców Go było skrócenie czasu kompilacji do minimum no i im się to udało: go kompiluję się bardzo szybko:
http://stackoverflow.com/questions/2976630/why-does-go-compile-so-quickly

1

A teraz parę ciekawostek:

-Kompilator Go tworzy natywny kod wykonywalny ale nie jest to standardowy "exec" tak jak w C/C++. Kod GO uruchamiany jest przez środowisko wykonywalne
"Runtime" które jest czymś podobnym do JVM albo .NET i odpowiada za Garbage Collector, Stos, Kanały, Gorutines...etc. Z tym że kod "Runtime" dołączany jest do
każdego "exca" co zwiększa jego rozmiar ale dzięki temu mamy wszystko w jednym pliku - a nie tak jak w Javie albo Pythonie(nie ma zależności związanych z wersją "runtime").

-Dwa kompilatory: "go" i "gccgo-compiler"(daje szybszy kod ale wolniej się kompiluję).

-Pierwszy język programowania z pełną obsługą UTF-8. Nie tylko stringi mogą być w UTF-8 ale i kod źródłowy(kody źródłowe GO są w UTF-8)

-Nie ma klas i typowego dziedziczenia ale są interfejsy dzięki którym możemy emulować OOP(coś jak mixiny w Rubym):

type Engine interface 
{
	Start()
	Stop()
}

type Car struct 
{
	Engine
}

func (c *Car) GoToWorkIn
{
	c.Start();
	c.Stop();
}
 
  • Zapotrzebowanie na pamięć ma porównywalną do C++ ale o połowę mniejszą od Scali i 4x mniejszą niż Java.

  • Kompilacja Go jest 5-6x szybsza w porównaniu od kompilacji C++/Javy i 10x szybsza w porównaniu do Scali.

  • Go jest średnio 25x szybszy od Pythona 3.0

3
myname napisał(a):

-Pierwszy język programowania z pełną obsługą UTF-8. Nie tylko stringi mogą być w UTF-8 ale i kod źródłowy(kody źródłowe GO są w UTF-8)

Aby na pewno pierwszy?

0

Oczywiście że GO jest jedynym językiem który w pełni obsługuję UTF-8. Napisz sobie w Javie dowolny program i ustaw mu formatowanie na UTF-8(można to zrobić w Notepad++;zaznacz cały kod i menu Format...). Po zmianie na UTF-8 dostaje komunikat od kompilatora JavaC:

"Sudoku_v1.java error:** illegal character:** \187
´╗┐import java.io.*;
^
1 error"

dopiero po ustawieniu formatowania na ANSI program kompiluję się normalnie.

0

Moze tak z innej strony podejde, wprowadzanie UTF-8 do kodu zrodlowego jest kompletnie nie praktyczne i utrudniajace zycie
Funkcja o nazwie display moglaby byc zapisana jako:

  • عرض
  • göstərmək
  • প্রদর্শন
  • 顯示
  • 显示
  • ცარიელია
  • પ્રદર્શન
  • להציג
  • प्रदर्शन
  • ցուցադրել
  • hiển thị
  • ສະແດງ
  • نمایش
    ew. wyświetl...
2
myname napisał(a):

Oczywiście że GO jest jedynym językiem który w pełni obsługuję UTF-8. Napisz sobie w Javie dowolny program i ustaw mu formatowanie na UTF-8(można to zrobić w Notepad++;zaznacz cały kod i menu Format...). Po zmianie na UTF-8 dostaje komunikat od kompilatora JavaC:

"Sudoku_v1.java error:** illegal character:** \187
´╗┐import java.io.*;
^
1 error"

dopiero po ustawieniu formatowania na ANSI program kompiluję się normalnie.

http://stackoverflow.com/questions/9811382/compiling-javac-a-utf8-encoded-java-source-code-with-a-bom

2
def ☺(imię)
  puts "Don't worry be happy now, #{imię}!"
end

def ☃
  puts 'Brace Yourself, winter is coming!'
end

☺ 'Łukasz' # => Don't worry be happy now, Łukasz!

Ojć, działa...

0

Python 3 też ma pełną obsługę UTF-8... można nazwy funkcji/klas itp. pisać znakami z UTF, zamiast rzutować unicode() wystarczy samo str(), nie trzeba też pisać w skrypcie # -- coding: utf-8 --

PHP któryś z kolei również wspiera UTF-8 ;)

1

Chyba prościej wymienić języki, które UTF nie wspierają. ;P

0

Wg standardu C++11 można stosować różne dziwne znaki UTF w nazwach zmiennych, klas itd. Problem polega na tym, że chyba nie ma kompilatora, który by to obsługiwał (w każdym razie GCC, ICC i zapewne inne używające EDG oraz clang nie).

Literały łańcuchowe czy komentarze również mogą być kodowane w UTF i to już raczej działa. ;-)

0

Jeszcze jedna mała ciekawostka:

  • Kod źródłowy GO musi być kodowany w UTF-8 bez "BOM" bo inaczej wyskoczy błąd,
  • GO wymusza taki styl kodowania:
 
func main(){
	fmt.Println("Hello")
}

Jeśli napiszemy to tak(to wyskoczy błąd):

 
func main()
{
	fmt.Println("Hello")
}

W katalogu bin/ jest narzędzie gofmt do formatowania kodu.

3
  • Kod źródłowy GO musi być kodowany w UTF-8 bez "BOM" bo inaczej wyskoczy błąd,

No czyli tak zachwalana w tym wątku obsługa UTF-8 właśnie poszła się rypać, bo standard Unicode jasno zezwala na BOM.

Jeśli nie może być BOM, to to nie jest „obsługa UTF-8” tylko „obsługa kodowania podobnego do UTF-8 tyle że bez BOM”.

0

Wydaje mi się że to jest obsługa UTF-8. BOM nie jest zwykle używany w systemach gdzie z góry jest ustalony sposób kodowania.

1

Czy to, że się szybko kompiluje to na prawdę taka zaleta? Dla małych programów nie ma to wielkiego znaczenia bo te nawet w C++ szybko się kompilują. Dla dużych systemów to jest dobra opcja, ale czy w językach dynamicznie typowanych pisze się duże systemy? Gdzie jest jakieś porównanie szybkości kompilacji w Go i innych językach?

0

BOM dla UTF-8 wymyslil jakis debil, lub nawet cala grupa, jeden umysl nie jest do tego zdolny. Jak juz tak chcecie zeby pare bajtow wskazywalo na kodowanie, tak jak chcecie BOM w UTF-8, to dlaczego nie dla wszystkich? W tej chwili raptem moge wykryc UTF-8 i UTF-16 LE / BE, a co z reszta? Nie wspomne juz o problemach jakie BOM sprawia na innych systemach niz windows. Dostajesz od kogos plik i nagle bach, nie dziala, po czym sie okazuje ze jest BOM. Ja juz wiem, ty juz wiesz, ale cale nowe pokolenia programistow ciagle sie mecza z tym samym problemem. Co ma BOM do open source to zabijcie, ale nie wiem.

1

@0x200x20

To jest język typowany statycznie z pewną charakterystyką
języków typowanych dynamicznie( przez slowo var ). Język jest
mocno typowany - niedozwolona jest niejawna konwersje typów.

*"Go is statically typed. Every variable has a static type, that is, exactly one type known and fixed at compile time: int, float32, MyType, []byte, and so on. "

Możesz pisać tak:

 
var a int = 15

var i = 5

var b bool = false

var str string = “To jest tekst”

Jak nie podasz typu to kompilator go sobie go przepiszę przez dedukcję(inferencję)

0

Tu jest benchmark:
https://days2011.scala-lang.org/sites/days2011/files/ws3-1-Hundt.pdf

Na stronie 7 fig.5 jest tabelka z podanymi czasami kompilacji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1