Szeretném a régi *atw.hu oldalamat az új *.hu címre költöztetni. A google webmester azt irja webhely címének változtatásakor a *atw.hu ra: Csak gyökérszintű domainekre vonatkozhat. Most ilyenkor mit tudok tenni? hogy tudom a webmesterben átirányítani? a *.atw.hu -t a *.hu ra?
Az Ada a leghatározottabban igen, azért hoztam fel példának. Sőt, még számos más olyan dolgot is, amelyre a Go FAQ-jában csak kicsit gyanús lesajnálás van, hogy nem volt érdemes, mert nem elég fontos (generikusok, kivételek, egyebek). Alighanem nagyon is fontos, csak nem jött össze nekik, hát ideológiát kerítettek neki, hogy nem is akarták olyan nagyon... :-)
kicsit jobban megnezve, pl az altalad felsorolt nyelvek egyike sem tamogat nativ modon parhuzamossagot. igy aztan komoly melo (nem lehetetlen, es nem is kulonosebben nehez, de melos) parhuzamos algoritmust implementalni veluk.
Semmi baj, a GC nagyon komfortos, én is jó ideje használok ilyen nyelvet, és kellemes (bár gondot is tud okozni, ha például sok nagy anyagot dolgozol fel (én például képeket), akkor ki lehet futni belőle, és muszáj kézbe venni a felszabadítást is valamelyest). Csak semmi újdonság nincs benne ma már, ettől még a Go nem lesz a holnap egyeduralkodó nyelve. Még csak jobb sem feltétlenül, mint az alternatívák.
Ott nem az volt az alapvető baj, hanem hogy nem a szabványos ISO Extended Pascalt vették elő, hanem csináltak egy gyengébb, inkompatibilis sajátot. Ha az lett volna, és később mellé jön még a Concurrent Pascalból, aminek érdemes, szerintem még ma is abban dolgoznék...
Meg lehet irni persze, akar assemblyben is. Csak az a kerdes, hogy mennyi ido alatt, mekkora felkeszultseggel, es mennyi hibaval.
Nekem ugy tunik, a google celja az volt, hogy ne csak futasido meg memoriahasznalat szempontjabol legyen a nyelv hatekony, hanem a programozo szamara is lehetove tegye a hatekony munkat, csokkentse a hibazas eselyet.
Nem akarok GC flame-et, egyertelmu hogy lehet GC nelkul olyan szoftvert irni, amiben nincs memory leak, csak baromi nehez. Ha egy uj nyelv hasznalata lehetove teszi hogy memory leak mentes legyen a termek anelkul hogy ueber guru kodereket es extreme tesztelest hasznalnk, akkor abban van racio.
A Qt soha nem lesz standard. A nokia pedig szvsz soha nem fog különösebben foglalkozni vele. Ő ezt valószínűleg a mobiltelefonos platformja kedvéért vette meg, a többi része nemigen hiszem hogy érdekelné. Márpedig egy multi szigorúan csak abba rak pénzt amiből később ki is tudja venni. Ami azért gáz egy picit, mert ezeket a cuccokat már nem Gipsz Jakabka fejleszti a 8/c-ből hanem profi programozók. És ez így van jól, ilyen méretű profi rendszert nem lehet úgy kifejleszteni hogy az ember mögött nincs úgy 10 év programtervezői gyakorlat.
Ugyanilyen programot lehet írni C++-ban, Pascalban, a már említett D-ben meg még számos egyéb nyelven is, gyakorlatilag minden normális, gépi kóddá fordító imperatív nyelven. Ettől még nem kifejezetten a C a cél, akkor már sokkal inkább a C++ lehet a cél.
Több szál? Ada (és még OOP, szigorú típusosság, moduláris, párhuzamos, kivételek, generikusok; és nem is ma találták ki). Szemétgyűjtés nem jellemző, pedig éppenséggel lehetne is. Komoly helyeken használják komoly feladatokra, mégsem szorította ki a C++-t. Pedig mennyivel jobban jártunk volna...
"Pl. ha GUI-t akarsz csinálni ott az MFC, ott a Qt, ott a wxWidgets"
Igen, ez igaz. Mondjuk még az a szerencse, hogy a QT elég faintos cucc, és kezd tartalmazni nem csak GUI elemeket: remélem a Nokia rendesen rányomul, és akkor a én a QT-re lassanként a C++ standard könyvtáraként fogok nézni...
Nekema faq-k vegigolvasasa utan pont ugy tunik, hogy annyiban a C a celpont, hogy elegge rendszerkozeli modon, hatekonyan lehet programozni. Cserebe van pl parhuzamossag. Ma C-ben vagy C++-ban nem nagyon lehet egy hozzaszolasban elfero terjedelemben tobbszalu programot irni, mikozben a laptopom legalabb ket magos, es a fene tudja hany threadot hajt parhuzamosan vegre. Amikor a C-t vagy a C++-t kitalaltak, akkor max korutinok leteztek, igazi parhuzamosan vegrehajtodo threadek meg tan elvi sikon sem. Ezekben a nyelvekben korulmenyes barmi parhuzamos dolgot csinalni. Nehez veluk kihasznalni egy mai processzort. Hat meg kettot.
A C++-nak nem a bonyolultság az igazi baja, hanem az hogy nincs hozzá egységes osztálykönyvtár mint a javának, az Object Pascal-nak vagy a C#-nak a .NET. Pl. ha GUI-t akarsz csinálni ott az MFC, ott a Qt, ott a wxWidgets, illetve a Borland is megcsinálta a VCL-t C++-ra (olyan is lett) és ezek még csak az ismertebbek. És Pl. a wxWidgets-nek is van saját string osztálya, amikor utoljára néztem a Qt-nek is volt, és ez csak a GUI.
hát, nekem sokáig a C++ volt a kedvencem, bár nem használtam ki minden opcióját, nem véletlen, hogy a nyelv kiötlőjének C++ könyve két bazinagy kötetből áll
a funkcionális nyelvek sem nehezek, csak furák az algoritmikus nyelvek után, de ha valaki mondjuk Clean-nel kezdi a pályát, akkor azt is lehet készségszinten művelni
A C++ értelmetlenül bonyolult, nem véletlen, hogy tipikusan egy részhalmazát szokta használni gyakorlatilag mindenki, amit kialakít magának, és a maradékra nem is figyel oda. És fordítóprogramok számára normális eszközökkel elemezhetetlen, hiszen fittyet hány minden normális nyelvtervezési szabályra (ennek, persze, jórészben az erőltetett C-kompatibilitás volt az oka, de saját maga is rátett pár lapáttal).
A C nem bonyolult nyelv, de a C++ az. Bár valóban nem a legnehezebb létező nyelv: egy átlag programozónak a legnehezebbek az egzotikus funkcionális nyelvek szoktak lenni lásd pl. Haskell. A C++-nak nem csak az a baja, hogy bonyolult, hanem hogy hiányzik belőle pár dolog, pl a gc (szemétgyűjtés).
Persze, a nyelvek nem csak képességeik alapján terjednek. Ha a google nagyon mögé áll ennek a nyelvnek, az sokat jelenthet.
Egyébként a vérfrissítés és a verseny csak jót tehet a szakmának. C-ben bonyolultabb dolgokat írni rémálom, a C++ elképesztően bonyolult (ezért a középszintű programozók képtelenek rendesen megérteni) és annyira még csak nem is magasszintű. (nincs gc nincs kényelmes natív párhuzamosság kezelés). És a többi nyelvnek is vannak hátrányai. A D-t nem ismerem, lehet hogy fasza és csak azért nem terjedt el, mert nem állt mögötte senki aki nyomatta volna. A Go mögött viszont áll.
Szép szövegeket írni lehet, de ez még nem elég. Nézd meg a D nyelvet, az elég rendes, körülbelül úgy kellett volna kinéznie a C++-nak annak idején ahelyett a szörnyeteg helyett, amivé Stroustrup tette. De azt sem terjedt el...
Gyors futást eredményező kódot nem lehet munka nélkül, pillanatok alatt fordítva elérni. Nem a C++ a jó példa, mert a nyelvtana valóban katasztrofálisan megnehezíti a fordítóprogramot írók dolgát, de egy rendesebb nyelvnél is meg kell dolgozni azokért az optimalizálásokért, amelyek ma érdekesnek számítanak.
Nekem nagyon nem úgy tűnik, hogy a C lenne a célpont, egyáltalán nem. Vannak benne érdekes ötletek, de attól még elég halva született az egész, nem látszik benne olyan nagy találmány, ami miatt a mostaniakat le fogja taszítani a trónjukról. A FAQ elég kiábrándító, ami még érdekes lenne, de hiányzik belőle, arról rendre elmondják, hogy nem éri meg, nem is fontos, azért hagyták ki, pedig sokat gondolkodtak rajta. Az érvek néhol elég gyengének tűnnek...
Ha valaki nem olvasná, itt a válasz a miértre a design faq-ból:
"Why are you creating a new language?
Go was born out of frustration with existing languages and environments for systems programming. Programming had become too difficult and the choice of languages was partly to blame. One had to choose either efficient compilation, efficient execution, or ease of programming; all three were not available in the same mainstream language. Programmers who could were choosing ease over safety and efficiency by moving to dynamically typed languages such as Python and JavaScript rather than C++ or, to a lesser extent, Java.
Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing. Finally, it is intended to be fast: it should take at most a few seconds to build a large executable on a single computer. To meet these goals required addressing a number of linguistic issues: an expressive but lightweight type system; concurrency and garbage collection; rigid dependency specification; and so on. These cannot be addressed well by libraries or tools; a new language was called for. "
Megvallom sokat álmodoztam egy olyan nyelvről ami szinte minden feladatra nagyon jó választás lehet, de mégsem irtózatosan bonyolult. Az egészben az a csábító, hogy talán ez egy ilyen nyelv lehet. (Persze a megfelelő lib támogatás nagyon fontos, de mivel a világ ma legerősebb szoftvercége áll a dolog mögött, ezért ebben a tekintetben sem tartom őket esélytelennek.)
"a java amikor kijott, volt hozza full grafikus ui toolkit."
Csak hát az Awt már akkor elavult volt amikor kijött... (És a Sun soha nem volt igazán erős GUI téren.) Akkor már inkább a Google minimalizmusa: Inkább adjanak ki egyszerre csak kevesebb dolgot, de az legyen 'fasza'.
Nagyon hasonlít az Erlanhgoz ahogy a többszálú programozást és az üzeneteket kezeli, bíztató. Lefordítottam a gépemre, de kódot még nem írtam vele, de hamarosan kipróbálom.
Ha azokat a szegmenseket nézzük, ahol ma C/C++-t használnak, ott érdekes lehet mert elég lightweight rendszerközeli nyelvnek tűnik, ilyen szempontból a C-hez hasonlít. Viszont hoz egy csomó magasszintű kényelmet.
Ahol meg ma a magasszintű nyelveket használják, ott is érdekes lehet: úgy tűnik elég magasszintű programozást is támogat, de a program gyors lesz és nincs függés hatalmas felinstallálandó runtime környezeteketől sem...
Szóval elsőre jól hangzik, de a részleteket jobban kellene ismerni...
"- grafikus vagy mas UI toolkit van hozza? - adatbazis eleres?"
Ááá, ilyesmiről még szerintem szó sincs. Úgy látom hogy a google-nél nagyon komolyan veszik a 'release early' mantrát. Szerintem korai stádiumban van még a dolog... De fene se tudja, hogy mi lesz még belőle: emlékszem, hogy milyen volt a Java amikor kijött. Én fél szememet rajta tartom ezen a nyelven.:)