Von Go -> zur Faszination Rust

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
Benutzeravatar
Manchotix
User
Beiträge: 54
Registriert: Samstag 14. Januar 2012, 19:54

Mittwoch 4. Dezember 2013, 00:05

Ich dachte mir ist auch kein schlechtes Offtopic mal die Meinung von dem Forum zum Thema Rust einzuholen da es ja auch schon in dem Go Thema zur sprache gekommen ist.
Erklärt mir die Faszination Go

Besonder lustig finde ich denn Wikipedia Artikel wie viele Sprachen Rust beeinflusst haben... aber man soll ja nicht immer alles glauben was auf Wikipedia zu lesen ist.

Aber mal im ernst was halttet ihr von der Sprache ?
Vor- und Nachteile
Und ob es wirklich eine wahlsprache werden kann für Projekte oder ob es einfach nur eine Sprache für Nischen ist.
Habt ihr euch schon intensiv mit Rust beschäftigt oder ist es einfach vorbei gezogen ?

Ich bin mal gespannt :)

mfg Macnhotix

Zur Rust Seite
BlackJack

Mittwoch 4. Dezember 2013, 14:53

@Manchotix: Da die Sprache anscheinend wirklich viele Spracheigenschaften von anderen Programmiersprachen abgeschaut hat, kann die lange Liste der beeinflussenden Sprachen schon hinkommen.

Ich habe bisher nur kurz drübergeschaut aber mich noch nicht tiefergehend damit beschäftigt. Ob's eine Nischensprache ist/wird lässt sich nicht so leicht sagen. Da spielen ja noch andere Faktoren als rein technische eine Rolle. Ich finde D zum Beispiel eine sehr schöne Sprache, die sich allerdings nicht durchzusetzen scheint, weil einfach die Gemeinschaft fehlt, oder zumindest auf Windows beschränkt zu sein scheint.

Demgegenüber kann Rust durchaus technisch schlechter sein (womit ich nicht sage dass es das ist) hat aber durch Mozilla eine ganz andere Reichweite als die doch eher unbekannte Firma Digital Mars.
EyDu
User
Beiträge: 4871
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Mittwoch 4. Dezember 2013, 15:13

Ich habe auch nur einen kurzen Blick drauf geworfen, prinzipiell sieht es zumindest brauchbar aus. Aus C++-Sicht sind dort ein paar schöne Erweiterungen (Pattern Matching, direkte Unterstzützung von Traits) dabei. Fraglich nur, ob das wirklich einen Umstieg rechtfertig. Boost existiert und auch sonst gibt es für alle Aufgaben vernünftige Bibliotheken. Zumindest bei mir wäre der Leidenstdruck für einen Umstieg noch nicht groß genug.
Das Leben ist wie ein Tennisball.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 8. Dezember 2013, 12:27

Persönlich bin ich sehr interessiert an Rust. Es scheint genau die Sprache zu werden von der ich gewünscht hätte dass Go diese Nische füllen würde. So wie Go im Endeffekt ein eventuell etwas besseres C geworden ist, ist Rust vielleicht tatsächlich ne Alternative zu C++. In der Nische gibt es bisher wenig ernstzunehmende Konkurrenz, einzig das ewig unfertige D (welches auch nett ist, aber ich habe das gefühl dass es inzwischen ein ziemlich verlorener Posten ist). Bei Rust geht es halt noch ziemlich drunter und drüber, aber die Kompromisse und Ideen die da umgewälzt werden sind interessant und zum größten Teil nachvollziehbar, was mir bei Go gefehlt hat. Und wenn ich das richtig im Kopf habe sind da schon einige Spieleprogrammierer interessiert, weil das eben womöglich für sie C++ ersetzen könnte, was bei so einem frühen Entwicklungsstadium ziemlich positiv klingt.

Bei mit scheitert das Lernen von Rust aber hauptsächlich damit, dass ich momentan keine Verwendung für eine Low-level-Sprache habe.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
seishin
User
Beiträge: 87
Registriert: Montag 19. Dezember 2011, 16:42

Montag 6. Januar 2014, 16:21

Möchte noch auf folgendes Interview verweisen: http://www.heise.de/developer/artikel/G ... 16345.html
Und folgendes: http://www.heise.de/developer/meldung/M ... 11044.html
Vor- und Nachteile
Keine technisch Konkreten, doch eine offene (Lizenz) Alternative (technisch) zu C++ ist mir sehr willkommen.
Nachteil, das sie evtl. keine Chance bekommt. (Selbst google ist mit Go mehr oder weniger gescheitert).
Und ob es wirklich eine wahlsprache werden kann für Projekte oder ob es einfach nur eine Sprache für Nischen ist.
Die Nische befürchte ich.
Habt ihr euch schon intensiv mit Rust beschäftigt oder ist es einfach vorbei gezogen?
Aufgrund von Zeitlosigkeit, leider nicht wie gewünscht, wobei ich wohl auch auf eine erste Stabile Version warten werde.
Kann aber das Sublime Text 2 Addon für Rust empfehlen und mal einen Blick auf github.com (schwirren einige Interessante Projekte herum).
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Mittwoch 15. Januar 2014, 22:49

seishin hat geschrieben:Keine technisch Konkreten, doch eine offene (Lizenz) Alternative (technisch) zu C++ ist mir sehr willkommen.
Nachteil, das sie evtl. keine Chance bekommt. (Selbst google ist mit Go mehr oder weniger gescheitert).
Das liegt aber an Go selbst. Eine Sprache die zwingend einen GC und eine Runtime benötigt kann C/C++ nicht ersetzen also warum sollte das irgendwer nutzen? Dort wo Go eingesetzt werden soll gibt es genug Konkurrenz (Java/C#/Haskell etc…). D hat da glaube ich ein ähnliches Problem, ohne GC gehen viele Vorteile verloren.

Rust hingegen kann auf sämtlichen Anwendungsfeldern mit C/C++ konkurrieren (Keine Laufzeitumgebung nötig) ist aber gleichzeitig "sicher". Deswegen könnte Rust ein erfolg werden, da C/C++ nunmal bis jetzt keine ernstzunehmende Konkurrenz hat. Besonders „sexy“ finde ich das Konzept des Eigentums on „verleihen“ von Zeigern. So langsam nimm Rust auch Form an. Es gibt zum Beispiel nur noch zwei Zeigertypen [1] statt wie vormals drei weil die verwalteten Zeiger in die stdlib ausgelagert wurden.

Kleine Übersicht: http://words.steveklabnik.com/a-30-minu ... on-to-rust


[1] Eigentlich gibt es noch einen Zeiger mehr, der unsichere Zeiger, der dem aus C entspricht.
seishin
User
Beiträge: 87
Registriert: Montag 19. Dezember 2011, 16:42

Freitag 31. Oktober 2014, 11:17

Wie sieht es denn nun nach einiger Zeit aus...
Hat sich noch mal jemand mit Go auseinander gesetzte?

Selbst habe ich noch mal geschaut und muss sagen das sie Dokumentations technisch weit aufgeholt haben.
Zwei große Konferenzen gab es auch derweilen, in den USA und in Europa (Paris).
Die Frameworks nehmen immer mehr Gestalt an, Augenmerk liegt bei Webentwicklung (Django like):
Einmal: http://revel.github.io/
Fehlt an sich nur noch ein vernünftiger OR Mapper.

Und Gorilla das go based web toolkit.
http://www.gorillatoolkit.org/

Who’s Using Go?
Google
Home of the Go authors and core team, signifiant parts of the Google infrastructure are thought to be written in Go. The company however does not publicly disclose which Google services are written in which languages. Youtube is known to be powered by Vitess, an open source, massively scalable database multiplexing layer written in Go.
Heroku
Maintainers of the pq driver for PostgreSQL, significant parts of Heroku’s infrastructure are said to be written in Go. One component that has been open sourced is Doozer, a consistent distributed data store.
Canonical
The company behind Ubuntu Linux recently rewrote its Juju devops management application from Python to Go, with pleasing results.
Soundcloud
Internet music thought leaders SoundCloud use a bespoke build and deployment system called Bazooka, designed to be a platform for managing the deployment of internal services. It is promised that Bazooka will be open sourced soon.
Bitly
Significant parts of Bitly are written in Go, including nsq, a realtime distributed message processing system.
Cloudflare
Large volumes of internet traffic are served by Cloudflare’s Railgun web optimization software, designed to speed up the delivery of content that cannot be cached.
Iron.io
Cloud infrastructure company and core Go community supporters Iron.io replaced parts of their Ruby codebase with Go, allowing them to handle a greater load with 2 workers than with 30 Ruby workers.
TinkerCAD
Cloud-based CAD application TinkerCAD is written in Go.
Drone.io
Continuous integration service Drone.io is written in Go.
http://golang-for-python-programmers.re ... intro.html


Darüber hinaus scheint auch Dropbox unter Druck zu geraten, wenn man schaut was die Ziele von Pyston sind.

Hat jemand von euch sich Go noch mal genauer angeschaut? Evtl. etwas im Einsatz?
In meinen Augen ist es noch ein recht weiter Weg um etwa eine Alternative zu Django zu erhalten aus dem Umfeld Go.
Doch war ich überrascht wie schnell die Community sich entwickelt und auch die Frameworks.
DasIch
User
Beiträge: 2465
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Freitag 31. Oktober 2014, 11:34

Die Go Community ist schon recht groß und wachsend, dementsprechend gibt es auch durchaus einige Projekte und ein brauchbares ecosystem. Rust kann da noch nicht mithalten.

An der Tatsache dass die Sprache schlimm ist und auch keine vollständige Alternative zu C oder C++ ist ändert es aber nichts. Dadurch dass Go schon so früh produktiv eingesetzt wird, kann sie sich jetzt auch kaum noch weiterentwickeln, was ich als eher problematisch einstufen würde.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 31. Oktober 2014, 12:32

DasIch hat geschrieben:Dadurch dass Go schon so früh produktiv eingesetzt wird, kann sie sich jetzt auch kaum noch weiterentwickeln, was ich als eher problematisch einstufen würde.
Das war aber schon auch so geplant, weil Go wurde in nahezu "feature-complete" zustand veröffentlicht und die paar Releases bis Go1 haben jetzt nichts substantielles an der Sprache geändert. Nicht so wie die Änderungen zwischen Rust 0.n zu 0.n+1. Aber heute gab es ja auch News zu Rust 1.0, was ja für das Jahr 2014 versprochen wurde :-)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
seishin
User
Beiträge: 87
Registriert: Montag 19. Dezember 2011, 16:42

Freitag 31. Oktober 2014, 18:14

Wo gab es denn da News? Denn das kündigen sie ja schon seit Anfang des Jahres an... da glaube ich langsam erst dran wenn es da ist.
Und dann dauert es dennoch recht lang bis man Rust einsetzen kann, bis dann die ersten stabilen Frameworks erscheinen.

Bezüglich Go.
Wenn ich mir die Einsatzgebiete anschauen, scheint mir, als würde das allgemeine Verständnis Go auch nicht als eine Alternative zu C verstehen. Sondern schlicht eine weitere Sprache, mit entsprechenden Features oder je nach Geschmack auch nicht.
Weil, wenn man so möchte ist so gut wie jede Sprache eine Alternative zu C, dies steht bei Java, bei C#, bei ObjectivC und auch bei C++.
Alle haben ihre eigenen Vor- und Nachteile.
BlackJack

Freitag 31. Oktober 2014, 18:39

@seishin: Mit Alternative zu C ist in diesem Zusammenhang systemnahe Programmierung gemeint, da würden Java und C# also eher nicht in der gleichen Klasse spielen. ObjectiveC ist recht plattformspezifisch, und Go ist explizit *gegen* C++ und dessen ”Mentatlität” gesetzt.
seishin
User
Beiträge: 87
Registriert: Montag 19. Dezember 2011, 16:42

Freitag 31. Oktober 2014, 19:09

Jop, dennoch denke ich das es nicht als C Alternative eingesetzt wird. Viel mehr als Java/Python/Ruby alternative. So sehe ich Go zumindest, seit den letzten Recherchen.

Und auch dennoch steht an all diesen Sprache, sie sind als Alternative bzw. aus Unzufriedenheit zu/bezüglich C entstanden.
Heißt ja auch nicht das sie sterben müssen, weil sie nicht in dem Bereich eingesetzt werden, oder anders sind als C.

Möchte Go auch gar nicht in Schutz nehmen oder eine Lanze brechen, dafür habe ich zu wenig damit gemacht und es gibt auch schlicht noch zu wenig um damit etwas vernünftiges zu erstellen.

Demnach meine Frage nach Erfahrung um Go. Rust nicht, da nicht stable, interessiert mich nicht, erst wenn es entsprechende Frameworks und Versionen gibt. Eben wie es bei Go derzeit kurz bevor steht, bezüglich umfangreicher Frameworks. Denn um Go bewegt sich überaus viel, mein Eindruck, allerdings nicht als C Ersatz. Was ich rein gar nicht verwerflich empfinde. Weswegen ich es auch dort nicht mehr sehe auch wenn es angeblich dran steht (ist mir Neu das es eine C Alternative sein soll). Wie gesagt steht halt auch an den anderen Sprachen...
Go wurde aus Unzufriedenheit über die bestehenden Sprachen zur Softwareentwicklung wie C++ oder Java im Kontext heutiger Computersysteme, insbesondere im Hinblick auf skalierbare Netzwerkdienste, Cluster- und Cloud-Computing, entwickelt.
*
* https://de.wikipedia.org/wiki/Go_(Programmiersprache)
Antworten