Heute programmieren lernen - welche Ziel-Plattformen?
Geizhals » Forum » Programmierung » Heute programmieren lernen - welche Ziel-Plattformen? (127 Beiträge, 1757 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.
Re: Heute programmieren lernen - welche Ziel-Plattformen?
08.06.2014, 16:42:00
Komplexität ist anfangs immer ein Motivationskiller ->
Tippe in Bezug auf 16-20jährige abseits einschlägiger Ausbildungswege auf folgende Reihung:

*) Webprogrammierung, weil es durch die Bandbreite an Umgebungen und Werkzeugen = Levels der Abstraktion den vielversprechendsten Weg zu schnellen Erfolgen verspricht und einen praktisch in jeder Hinsicht plattformunabhängigen Zugang ermöglicht und außerdem gibt es ja angeblich soooviele Jobs und Beispiele, wo/wie man dann reich werden kann und man kann die Ergebnisse jederzeit herzeigen.

*) mobile Plattformen, sobald Webprogrammierung und HTML5-lastige Umgebungen (Sencha, Phonegap, Titanium u.ä.) nicht mehr ausreichen,  wobei Android gegenüber IOS den Vorteil hat, daß man eben auch ohne Jailbreak ODER 100$/Jahr auf das Gerät deployen kann. Außerdem wird man eher einmal einen Java-Grundkurs wo streifen, als (Obj-)C.

Die Differenzierung ob Handy oder Tablet wird wahrscheinlich sekundär sein = man programmiert, was man zur Verfügung hat.

*) Arduino + Raspi ... schwer zu sagen: das Gros der Raspberry-Tutorials unterscheidet sich im Grunde nicht von anderen Linux/Debian-Grundkursen, nur daß halt Python etwas mehr in den Fokus kommt.
  Darüber hinaus braucht man halt für beide etwas Elektronik-Grundkenntnisse + Zugang zu den Komponenten, und da schaut es, schätz ich einmal, vergleichsweise mau aus (vgl. die regelmässige Frage: wo kriegt man abseits von Co****d und Versand das Kleinzeugs her?), vom sonstigen Drumherum eines Elektro-Arbeitsplatzes (Lötausstattung, Meßgerät, Sortimente und gesammeltes Zeugs zum Ausschlachten) abgesehen = das wird sich auf Bastler beschränken, die entweder in der Familie oder nahem Umfeld (zB Hackerspaces) einen Mentor haben.
oder man wählt eine Bastlerplattform, die komplett auf Stecken basiert (Tinkertools etwa), zum x-fachen Preis.

*) Serverprogrammierung betrachte ich punkto Einstieg als Ausprägung/logische Fortführung von Web-/App-Geschichten, also Frontend -> Backend.

Desktop dürfte inzwischen vergleichsweise uncool sein.

In Schulen wird Java wohl nach wie vor führen, aber welchem Target (jenseits der Programmiergrundkonzepte auf Commandline, wie von je her), das mag wiederum vom Zweig der Schule abhängen.

Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
...
Re(3): Heute programmieren lernen - welche Ziel-Plattformen?
08.06.2014, 17:13:21
Früher war das alles sehr einfach mit BASIC und so

alles war überschaubar und pro Homecomputermodell gab es halt 2-3 Bibeln, die in Frage kamen.

Das finde ich heute auch sehr komplex, da man ja so viele mögliche
Sicherheitsprobleme, komplexe Standards und Protokolle kennen muss.

ja und nein - für einen Einsteiger, der einfach ein paar Sachen sehen will sind Sicherheitsaspekte und fremde Protokolle erst einmal nebensächlich, und für jede graphische Spielerei gibt es ein Tutorial, das man schnell benutzen kann, auch ohne zu kapieren, was in vorgefertigten Libs passiert.
Nur: was dann OHNE echte Programmierausbildung autodidaktisch auf Dauer rauskommt, steht auf einem anderen Blatt.

Worauf ich hinaus will: anscheinend gibt es derzeit keine einfache
Einsteiger-Plattform mehr, oder es kommt nur uns alten Säcken alles zu komplex
/ abschreckend vor im Vergleich zu früher.

zu C64-Zeiten lag die Latte und damit das Frustlevel eben woanders und jeder, der sich ernsthaft reingearbeitet hat, suchte sich eben eine Nische, wo er vorankam.
Heute fliegen einem faszinierende Projekte in allen Reifegraden nur so um die Ohren und entsprechend größer die Hürde, bis man selbst in einer neuen Umgebung was zusammenbringt, worauf man stolz ist.

Und noch einmal schmerzhaft höher liegt das notwendige Level, um damit auch Geld zu verdienen (wenn man schon soviel (Frei)zeit investiert), einfach weil SW in der Wahrnehmung der "Kunden" nix mehr kosten darf = fast immer eine Gratis-Alternative existiert.
-> im beruflichen Umfeld wird damit die immer schmalbandigere Spezialisierung vorangetrieben, den "Universalprogrammierer" kann man sich nicht leisten, bestenfalls für Nischenarbeiten im Alltag des EDV-Betriebs (Bugfixes und Anpassungen im OSS-Umfeld, quick hacks, Scripting).

Sicher: Raspberry macht die Beschäftigung in der Hinsicht wieder interessant, weil die zuletzt langweilige Commandline-Prrogrammierung (also ohne Oberfläche bzw. nur mit Web-GUI) + Anbindung an die "Real World" per Elektronik = "Internet der Dinge" u.ä. lange kein Thema waren oder von langweiligen + selten weiterentwickelten USB-Gadgets abgedeckt wurden.
Nur, daß man hier eben KnowHow aus 2-3 Welten (Programmierung, einfache Elektronik und Sensorik/Protokolle) benötigt.

Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
...
Re(3): Heute programmieren lernen - welche Ziel-Plattformen?
MG
08.06.2014, 21:25:44
Worauf ich hinaus will: anscheinend gibt es derzeit keine einfache
Einsteiger-Plattform mehr, oder es kommt nur uns alten Säcken alles zu komplex
/ abschreckend vor im Vergleich zu früher.


Nun, zu unserer Zeit lernte man programmieren, weil man ein Problem lösen wollte, und man kein Programm dafür hatte.

Wir haben typischerweise im Alter zwischen 12 und 16 damit angefangen, und waren auf learning by doing angewiesen.

Dass uns ein Computer einen blinkenden Cursor zeigt, hat uns weiters nicht verwirrt, das haben wir so erwartet.

Heute sind die Kids total frustriert, wenn sie vor einer Kommandozeile sitzen. Sie haben nie vor einem Problem gestanden, das Programmierkünste erfordert hätte und leben im Glauben, dass Programmieren so ähnlich funktionieren muss wie ein Computerspiel zu spielen.

Haben früher alle BHS Schüler in der Schule die Grundzüge des Programmierens (meist Torbopascal) erleben müssen, und manche AHS Schüler ebenfalls, so lernen heute nur mehr Schüler der einschlägigen Fachrichtungen zu programmieren.

Und die werden im Rahmen ihrer Ausbildung zum ersten Mal mit einer Programmiersprache - meist C/C++, Java oder C# konfrontiert.

Und heute ist das für die Kids ein Selektionskriterium. Ca. 1/3 schafft es nicht das zu erlernen.

Fazit: Heute lernt niemand mehr von sich aus zu programmieren. Sondern nur gezwungenermaßen in Unterrichtssituationen.

Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
..........
Re(10): Heute programmieren lernen - welche Ziel-Plattformen?
14.06.2014, 16:01:13
Stimmt völlig - mit Windows gabs dann nur noch die Treiber-Disketten,

und in 20 Jahren Internet hat man es nicht geschafft, eine zentrale Treiberdatenbank zu schaffen, zu der sich beliebige Betriebssysteme verbinden können und für die Kombination von PCI/USB-ID + OS-Version einen passenden Treiber/Package/Installationshinweise/Link o.ä. zurückbekommen!!!
Dieser Mangel ist IMHO die ultimative Bankrotterklärung der EDV-Branche, wenn man bedenkt, daß Treiberprobleme immer noch einer der Top-3-Showstopper sind!

Bei IBM-Geräten war das damals schon recht gut gelöst,  bei HP findet man zumindest schnell, was man sucht, bei Toshiba und Canon sucht man etwas länger, Fujitsu gibt sich Mühe, aber viele andere Hersteller kriegen es nicht auf die Reihe, von einem eben zentralen Mechanismus oder dem Willen dazu ... keine Spur, aber Hauptsache 2 GB Crapware auf dem Gros der Markengeräte *headbang*headbang*headbang*

Von non-Windows reden wir gar nicht ... Stichwort Linux - bei aller Liebe, aber auch hier happert es an einigen Fronten gewaltig, weil der Wildwuchs leider nicht zu qualitativem Wettbewerb sondern ressourcenraubender Zerspragelung führt und technische Probleme inzwischen zu 80% nur mehr über die Google-Suche gelöst werden können. Ich würde fast sagen: Hier liegt der Fluch, denn OHNE Suchmaschinen wäre das Problem so dringlich, daß man nach einer sinnvollen Lösung und Straffung suchen MÜSSTE!!!

Genau deshalb wird der Mac (zurecht!) weiter zulegen! (*bussi*bussi*schmatz*kuschel* ;-) )

Warum muß die Branche immer wieder zu einfachsten logischen Dingen mit (Markt-)gewalt gezwungen werden?

jajajaja, weiß eh anderes Thema, aber hatte wieder so eine Nacht (RTL8188 und Intel 7260) :-/

  die Handbücher beschrieben nur noch, wie das Teil ein/auszuschalten ist -
dafür aber in 25 Sprachen ;)

und die Gebrauchshinweiszettel für Vollidioten ("tatschen sie nicht auf die Hochspannungsteile", "Haustiere gehören nicht in die Mikrowelle", )  Entsorgungshinweise (Batterien!) und Lizenzbestimmungen (die kein Dutzend Menschen weltweit lesen), ... also Menschen die eigentlich intellektuell gesehen gar nicht in der Lage sind, einen Computer sinnvoll zu benutzen :´(

14.06.2014, 16:08 Uhr - Editiert von user86060, alte Version: hier
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
............
Re(12): Heute programmieren lernen - welche Ziel-Plattformen?
14.06.2014, 16:52:59
Ich tipp immer die Major/Minor-Number in die Google-Suche - und schwupps  ....
^^
Naja - okay, dann lande ich zumindest in Foren, die sich bereits damit
beschäftigt haben ;)

ja eben ... davon sind 30% veraltet, weitere 30% von Noobs/Blogger ohne echten Schimmer + ohne Lösung, dann: andere Nebenbedingungen (Kernel, Plattform/CPU, Distri, Schnittstelle,....) und irgendwo auf Seite 3 der Hits dann zwischen den Zeilen der passende Hinweise *grm*

-> viel zuviel Handarbeit, um Informationen rauszukletzeln + in den Suchbegriffen zu filtern, die ein SW-Agent halbautomatisch vorbereiten kann, wie es eben die wenigen positiven Beispiele (Thinkpad-SW) tun.

Hier ist die Treiberentwicklung ohnehin völlig anders - irgendein Typ hat
z.Bsp über 80% sämtlicher Treiber für Web-Cams entwickelt. Da gibts ja eher
den Ansatz, einen "fetten" Treiber für möglichst viele Modelle zu schreiben.

teils - teils. Die Hardwaretypen klaffen da stark auseinander:
SANE ... deckt schätzomativ 80% der Scanner und einige Webcams/Digicams/V4L-Geräte ab, aber die Probleme sind dann oft in den Detailkonfigurationen technisch verwandter Geräte

Webcams .. einzelne Ausreißer, die aber technisch gut genug waren/sind, daß sie einen eigenen Treiber pflegen, aber deren "Wartungspersonal" nicht immer alles up-to-date halten kann / will (Philips! IMHO immer noch DIE Geheimtipps)

GraKa ... deren Mobilevarianten, die dann eben NICHT mit demselben Treiber, wie die Desktopversionen arbeiten

Drucker ... jupp, auf der einen Seite CUPS, dessen Komplexität dem Zweck am Desktop in keiner Weise entspricht während es unter gleichzeitig immer noch keinen zentralen systemseitigen Dialog für die Einstellungen eines Druckjobs gibt *kopfschüttel*
Ghostscript ... immerhin EIN bewährtes Paket, das seine Sache gut macht.

Netzwerkeinstellungen ... connman, wicd, networkmanager, die Desktop-eigenen .. ein halbes Dutzend Tools für ein und denselben Zweck und KEINES macht es wirklich gut + universell (X + nur Konsole (runlevel 2), Desktop + Notebook / LAN + WLAN + sonstige/ VPN (!!!) / saubere Profileverwaltung + Regeln für die automatische Umschaltung + erkennen neuer Geräte und Umgebungen ... nach wie vor ist man von Hand schneller -> *WTF*maximaler*Frust* und von der Dauer zw. Aufwachen + funktionierender Verbindung reden wir gar nicht ... Apple konnte es vor 10 Jahren schon besser)

(Was MS hingegen bei der WLAN-Konfig jahrelang aufgeführt hat, darüber verlier ich nicht einmal mehr  ein Wort...)

Es hat schon seine guten Gründe, warum ausgerechnet Linuxer so auffallend häufig mit MacBooks (in beiderlei Wortsinn) unterwegs sind und darauf in VMs arbeiten.

Klingt nach Coffee and Cigarettes ^^

Nichtraucher ... aber ein LSD-Trip wär manchmal das kleinere Übel :-/
Koffein ... oder Schokolade (vulgo: "Glückshormone")


Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
......
Re(6): Heute programmieren lernen - welche Ziel-Plattformen?
08.06.2014, 18:07:32
Meine Idee dahinter war was anderes:

Lerne ich C hab ich mal das gröbste hinter mir und kann mal großteils embedded
HW programmieren und zur Not einfache Programme für die meisten
Betriebssysteme schreiben.

streite ich nicht ab - relativiere lediglich:
Um GRUNDSÄTZLICH einmal Programmieren zu können (grade C) braucht man rund 3 Jahre - noch einmal 1-3 Jahre für C++ sowie für jede größere Bibliothek/Framework noch einmal einige Monate.

Für Apples IOs brauch ich entweder Java (Saulangsam) oder Objective C.

so richtig Überblick hast du nicht? Java ist auf IOS ÜBERHAUPT kein Thema, dagegen ist es auf Android durch mit Dalvik (stackbasierte JVM) speziell optimiert.

Von C zu Java oder Objective C ist der Schritt nur noch klein als von
irgendeiner Scriptsprache wie z.b. Python.

theoretisch ja - praktisch hab ich da verschiedene Hürden gesehen, angefangen dabei, daß eben die Meisten mit Java anfangen und danach für C verdorben sind (Speicherverwaltung? wie langweilig. Performance? Kauf ich halt einen schnelleren Rechner. Optimierung? Papperlapapp, die VM macht das doch eh schon? Lowlevel-Datentypen? Protokolle? Serialisierung? Bitschupfen? Eventorientierte Plattformen? Was kein Multithreading im Core-Umfang? totale Steinzeit, Alda!)

Nicht zuletzt hängt es auch davon ab, welchen Zugang der Unterrichtende dazu hat, also ob derjenige mehrere Umgebungen gut genug kennt, um die Unterschiede, Features und Vorteile gezielt und aufbauend zu vermitteln.

Autodidaktisch ist die Gefahr, sich Dinge falsch anzueignen bzw. anzugewöhnen in den ersten Jahren doch recht groß.

Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
........
Re(8): Heute programmieren lernen - welche Ziel-Plattformen?
08.06.2014, 18:39:03
Bei den meisten Anwendungsfällen würde sich C einfach nicht lohnen, weil der
Programmieraufwand wesentlich mehr als die benötigte Hardware kostet.

das ist wiederum differenzierter zu sehen:

Einerseits halte ich die Kenntnis all dieser Lowlevel-Geschichten für wesentlich um - egal auf welcher höheren Ebene! - effiziente Programme und gute Architekturen zu erzeugen, unabhängig davon, mit welcher Umgebung und Abstraktionsebene man letztendlich arbeitet, sowie: Beim Debuggen und Optimieren ist deren Kenntnise schlicht unerläßlich!

Was den effizienten Programmierer bzw. erfolgreichen Projektleiter letztendlich ausmacht, ist die Fähigkeit abzuschätzen, welche Werkzeuge und Komponenten er einsetzt, um in sinnvoller Zeit zu einem performanten und wartbaren Ergebnis zu kommen, und je mehr man an zur Wahl stehenden Komponenten kennt, desto besser die Chancen.

Nicht umsonst bildet C entweder das Backend einer Sprachfamilie (GCC - gnu compiler collection), kann fast immer als Komponente eingebunden werden (einfach weil in fast jedem System die Basis der Libs), siehe auch SWIG, womit man in C nachreichen kann, was dessen unterstützte Scriptsprachen (Perl, Python, usw.) native nicht beherrschen!

oder: man liefert als Betriebssystemhersteller VOLLSTÄNDIGE + gute gewartete Libraries für alle Systemzwecke (siehe NeXTstep/MacOSX und zwischendurch BeOS) als sauberen Unterbau für effiziente C-/C++/Obj-C-Entwicklung

oder aber - siehe .NET, LLVM bzw. JVM - werden verschiedene Sprachen als Syntax über eine andere Sprache gelegt, und können dort beliebig gemischt werden.

-> der Mix von Sprachen und Umgebungen ist der Schlüssel zu schneller Entwicklung, nur: diese Einsicht wird alle paar Jahre von eine Welle unterbrochen, wo eine neue Plattform sich als Universalwerkzeug anpreist (und diesen Anspruch erst nach JAHREN + dann halbherzig erfüllt).

aber klar: mit all diesen Aspekten, Ansätzen und sich ständig verändernden Ökosystemen braucht man einem Einsteiger nicht kommen - der wird erst einmal mit den Grundideen des Programmierens an sich eine ganze Weile erschlagen.

Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
....
Re(4): Heute programmieren lernen - welche Ziel-Plattformen?
08.06.2014, 20:27:18
Meine Meinung des Arduino-Ökosystems ist ganz wertfrei:
mir ist bekannt, daß man mit AVRdude etc. ganz klassisch mit den Dingern arbeiten kann - nur: die Fragestellung des Threads zielte auf Programmiereinsteiger ab, und da ist der einfache Zugang die halbe Miete.
Der Arduino hat immerhin geschafft, woran alle seine logischen Vorgänger inkl. PIC gescheitert sind: eine blühende Community + Industrie zu aktivieren.

Auf der anderen profitieren die Profis von einer Vielzahl an Board, Shields, Breakouts, Sensoren, Schnittstellen, mehr Leistung (ARM Cortex, Intel (!) -> Galileo) zu einem Spottpreis + mit immer mehr Features, für die bis dato komplette "embedded OS"-Lösungen notwendig waren (eben Ethernet und Wirelessanbindungen, integrierte Webserver, massenhaft Speicher durch SD-Cards, Auswahl an Cameras (USB!) und je nachdem auch genügend Leistung für Bilderkennung)

Hinterdrein jede Menge Plattformen, die auf den Shield-Zug aufspringen (Freeduino, Vinculum) oder überhaupt die Lücke zu bisherigen embedded-Linux/*WRT-Domänen (Beagleboard, die bekannten Bastel-Router seit dem WRT54 u.ä.) schließen.

Ja sicher ... Overhead, aber auch ein Schub auf breiter Basis, von dem die Profis unglaublich profitieren!

Und zum ersten Mal seit dem C64 gibt es damit wieder eine echte HW-Bastelplattform für Jugendliche, was der PC trotz "offener Architektur", ISA etc. eigentlich nie war.

Nein, Arduino war fällig, Raspberry war - für diesen Preis (!) - eine ziemliche Überraschung.

Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
......
Re(6): Heute programmieren lernen - welche Ziel-Plattformen?
08.06.2014, 20:58:32
Es ist heute nun wirklich keine Doktorarbeit mehr mit MCs anzufangen.

spulen wir 10 Jahre zurück:
PIC ... mit der BasicStamp (jajaja, lächerlich) jahrelang das Zugpferd für Einsteigerzwecke, 8051/AVR, C16x ...  entweder teure, proprietäre Developerboards oder aber nur ein Chip + das Drumherum mußte man je nachdem erst zusammensetzen: SRAM, EPROM, Treiberchips, Spannungswandler, Kleinkram, ... auf Lochrasterplatinen alles Fehlerquellen = Hürden, obendrein kaum ein gemeinsamer Nenner, auf dessen Basis man Projekte publizieren <-> Nachbauen konnte, dazu die Compiler: Demoversionen mit wenig kB Source oder teure kommerzielle (Keil), Bibliotheken wiederum proprietär.

Arduino: immer noch billig, aber out-of-the-box binnen 10min Ergebnisse möglich und trotzdem alle Möglichkeiten nach unten und oben offen - nur die Chips nehmen + custom design drumherum (falls es keiner mini/nano/teensy... tut, oder denselben (Java-Subset-)Source auf stärkeren Varianten (eben mega, Cortex, Galileo, ...) nur durch Neucompilieren zum Laufen bringen und dort mit noch mehr Features weiterzuentwickeln.
Egal, was man vorhat: Arduino läßt einem nach denkbar einfachem Einstieg den Weg in jede Richtung offen = genau, was alle seine logischen Vorgänger nicht verstanden haben!

Man kann es aus Profi-Sicht kritisieren - aber die Vorteile des blühenden Ökosystems überwiegen, auch für jene, die es belächeln.




Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
..........
Re(10): Heute programmieren lernen - welche Ziel-Plattformen?
08.06.2014, 21:47:51
Stell mir das schon eher frustrierend vor. Da kauft man sich ein (teures?)
Starterkit mit Buch oder was weis ich alles und will vielleicht was eigenes
basteln und steht erst wieder an.

nananana - das was in den Einsteigerbüchern drin ist, ist immer umsetzbar.

Sobald man wirklich über die - bei Gott nicht geringen Möglichkeiten - hinauswächst und eine Anbindung braucht, die tatsächlich NIRGENDS im Netz existiert oder zumindest diskutiert wird, dann beginnt genau der Sprung zur nächsten Ebene -> dem Einlesen und selber Implementieren, auch das ist möglich, denn die Libraries für extra Hardware kommen ja auch im Java-Dialekt.

Beim Galileo-Board hat man die Wahl, es rein vom Minimal-Linux im internen 8MB-Flash als Arduino-Emulation laufen zu lassen, ein ziemlich vollwertiges Linux (inkl. Ethernet, USB-Host + eigener RS232) + unabhängig arbeitendem Arduino daneben, mit dem halt kommuniziert wird, oder aber: den Arduino-Teil weglassen und man bekommt die Pins am Shield per Device-Driver (GPIO) serviert, egal ob dann mit C oder Python, aber eben auf Unix-Level -> da spielt man punkto Möglichkeiten dann in einer ganz anderen Liga.

Ähnlich mit dem OpenWRT-Ableger (Yocto), den es auch auf dem Beagleboard uvm. gibt.

Gibt noch ein paar Ansätze, wo Shields am Raspi arbeiten (mit eigenem Cortex dazwischen).

Nein, bin kein Profi, lese mich nur wahnsinnig gern in die Möglichkeiten ein ;-)

Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
............
Re(12): Heute programmieren lernen - welche Ziel-Plattformen?
Fly
08.06.2014, 23:21:31
Es gibt bei Arduino für so ziemlich jeden Furz den Du lassen wollen könntest 'n "Shield", also 'n Stück Hardware das man dranpappt und das nicht nur mit 'ner Lib daherkommt sondern auch "out of the box" bereits recht gut arbeitet.

Nur löst das mein eigentliches Problem das ich mit Arduino hab nicht.

1. Größe. Jedesmal wenn ich das Ding angreifen muss (weil 'n Freund von mir sich halt einbildet 'n 3D Drucker darüber zu steuern... seufz) hab ich das Gefühl den Maggi-Würfel mit'm Tieflader auszuliefern. Das Ding ist einfach schlicht 'n Kubikmeter zu groß für das was es tun soll! Sogar mit THT sind meine Projekte kleiner, da reden wir noch nicht mal von SMD. Wozu bastel ich an MCs rum wenn das Endergebnis erst wieder in 'n Towergehäuse passt?

2. Overhead. Wie bereits vorher gesagt, die "Runtime" von dem Ding ist, gelinde gesagt, erheblich. Wenn mal die Hälfte des Programmspeichers nur dafür draufgeht dass das Dingens überhaupt was tut, dann rennt da was falsch. Davon, wieviel die diversen libs dann noch fressen, reden wir mal lieber nicht. Dagegen ist sogar die Touch-lib von Atmel "lightweight".

3. One size fits all. Jetzt kommen die aktuellen Arduinos glücklicherweise endlich mit halbwegs aktuellen Chips daher... nur ganz ehrlich, um wieder auf den Tieflader mit'm Maggiwürfel zurückzukommen, ich bevorzuge es halt den richtigen MC für die richtige Aufgabe zu wählen. Nicht nur wegen der Größe, aber es reut mich ein wenig zu sehen wie 'n Mega2560 dafür verballert wird was 'n Tiny15 könnte.

4. Preis. Wenn das Dings 'ne Entwicklungsumgebung wär, ich tät kein Wort sagen. So 'n Dragon oder gar STK500 kostet auch 'ne Stange Kohle. Das Problem ist dass das Ding als Devtool nicht wirklich viel hergibt. Viel mehr ausser das Ding im Endeffekt selbst verbauen kann man da nicht machen (ausser, man versteht viel von Mikroelektronik, und in dem Fall... wozu Arduino?). Und dafür ist das Ding halt einfach zu teuer. Verglichen mit den Kosten für 'n Chip und dem Hühnerfutter rundherum ist das Ding mit seinen 20-40 Flocken einfach um den Faktor 2-5 teurer. Wenn man nun nur eins bauen will. Ok. Nur ... dann ist der Aufwand einfach nicht gerechtfertigt, sich überhaupt hinzusetzen!

________________________________________________________________________
There's a typo in the Bible.
It should read "The geek shall inherit the earth".
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
.............
Re(13): Heute programmieren lernen - welche Ziel-Plattformen?
09.06.2014, 00:22:16
die Kosten-Nutzen-Rechnung kann man natürlich an die Spitze treiben - nur so ein paar Gedanken dazu, ohne Anspruch auf Zutrefflichkeit:

*) Faktor 2-5 ... vernachlässigbar, wenn die Stückzahl gering ist.

*) Runtime-Overhead und Dimension/Maße - ja, stößt mir auch oft auf, aber vor lauter Detailverliebtheit: wenn nicht grad zB die Anforderung "Batteriebetrieb" oder "minimaler Platzbedarf, weil wo direkt zu integrieren" dazukommt - wem tut's weh, außerdem Ego, das es weiß?
Für Prototyping, Machbarkeitsstudien und Kleinserien wird man es verkraften können.

*) one size fits all ... da ist Arduino wohl inzwischen darüber hinaus = vom kleinsten ATmega8 über die Cortex-basierten,  den Yun oder Galileo, vom Chip alleine, über Nano-Varianten, Lilypad, klassischem Uno bis hin zu Freeduino steht ein breites Sortiment zur Auswahl - das klingt nach einer Plattform, die mit den Anforderungen mitwachsen will und auch kann. Ist das soo schlecht?
ATmega Chips gibt es genauso einzeln (~2$? und China-Unos für 10$, im Gegensatz zu den in der EU produzierten), Bootloader ist verfügbar.

Überdimensioniert? mag sein - Luft für Weiterentwicklung des Projekt? Schadet nicht. Ist der "ideal passende" wirklich soviel billiger bei sonst gleichen Kosten? vielleicht. Soviel billiger, daß es sich rentiert, verschiedene Schienen in der Schublade zu pflegen, nur um draufzukommen, daß viele Projekte mittelfristig ohnehin nach oben wachsen (Internet-der-Dinge)?

Ist die embedded-Branche nicht immer wieder über das Problem gestolpert, daß man bei dieser Gelegenheit dann fast immer eine komplette Neuentwicklung triggern mußte?

*) Entwicklungsumgebung - das kann man wohl stehenlassen: die Processing/Wiring-basierte IDE inkl. Compiler ist nur ein Minimum (aber immerhin plattformübergreifend verfügbar, was man von vielen Konkurrenzprodukten nicht behaupten kann).
Andererseits: eine Integration der Commandlinetools dahinter (sind in den Unterverzeichnissen ja alle vorhanden) in Eclipse ist kaum das Problem.

PS: ganz vergessen - es gibt ein Eclipse-Plugin ( http://www.baeyens.it/eclipse/  ) - war damals etwas hakelig, weil es nur mit einer bestimmte Version zusammenarbeitete (=auch einige andere "forks", die eigene Compilerversionen oder Bootloader integrieren (Galileo, Teensy) eiern leider bei 1.5x herum während andere Board 2.x oder den nightly build brauchen - gsd kann man sie aber inkl. Workspaces parallel betreiben)

Was braucht es dann noch?  Wie müßten Debugging und Tracing dann funktionieren?

Und nicht zuletzt / noch einmal: Yun (entspricht ziemlich genau *WRT-Routern + eben Shield-Anschluß) und Galileo (P54C-Core = gcc pur) können auch komplett auf Linux-Ebene benutzt werden ... klar, überdimensioniert, aber dafür dort volles Programm (sic!) möglich.

Nein, ich denke, der Erfolg von Arduino hat gute Gründe.

Und auch ich finde es umgekehrt komisch wenn Einsteiger mit Anforderungen auftauchen, die sie meinen nur mit einem GHz-ARM-Board lösen zu können (das dann aber mit einem Linux läuft, das NICHT echtzeitfähig ist) = was du sagen willst ist mir nicht fremd. Wir dürfen halt alle nicht das Wesentliche auf den Augen verlieren: Für die einen ist es Spiel und Hobby - die haben das Recht sich womit auch immer einzuarbeiten, für andere ist es Beruf mit entsprechender Erfahrung und konkreten Anforderungen und Nebenbedingungen, aber auch die haben irgendwie angefangen => und hat der Besitzer des damals noch teuren PCs wohl auch die Augen gerollt, wenn von einem Jungspund ohne Ahnung das millionste Sieb-des-Erathostenes in gwbasic reingeklopft wurde ;-)

09.06.2014, 00:55 Uhr - Editiert von user86060, alte Version: hier
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
..............
Re(14): Heute programmieren lernen - welche Ziel-Plattformen?
Fly
09.06.2014, 13:58:15
Alles gut und schön, nur entspricht das nicht meiner Vorstellung von "embedded device design". Ja, Arduino ist 'n RAD tool. Soweit, so schön. Nur hat es halt sehr viel davon was früher eben so Dinge wie QuickBasic waren: Du kommst schnell zu 'n Ergebnis, nur wenn das Projekt größer wird stellst Du irgendwann fest, dass das, was Du dazu verwendest, das Ganze eben dann doch nicht realisieren kann. Oder kann man mit dieser ver...ten Arduinosprache inzwischen endlich irgendwie sinnvoll auf Interrupts zugreifen? Oder einen icall/ijmp (call/rjmp mit Adressgenerierung zur Laufzeit) sinnvoll realisieren? Und ich mein damit nicht switch/case Konstrukte sondern echte Laufzeitadressgenerierung, was beispielsweise für einige meiner Programme unerlässlich ist (spätestens wenn die Dinger echtes Multitasking betreiben sollen wird's ohne schon etwas ... naja, WIE?).

Klar kann man mit Arduino und co schnell mal 'n paar LEDs zum blinken bringen oder auch weniger umfangreiche Aufgaben erledigen. Echte real-time systeme wird's allerdings damit nie spielen, schon weil die Laufzeit nicht wirklich einfach vorhersagbar, oder zumindest durch den Programmierer bestimmbar, ist. Du wirst damit beispielsweise nie einen USB-Controller schreiben können, da hier das Timing extrem genau stimmen muss. Und für Robotik stell ich's mir zumindest recht ... "schwammig" vor. Ich wüßte jetzt auch nicht wie man beispielsweise ein kapazitives Touch-System damit realisieren soll, auch weil der Zugriff auf die dafür notwendigen Teile des AVR zu ungenau wäre.

Arduino hat sicher seine Existenzberechtigung im Hobbybereich, oder wenn man schnell ein kleines Projekt realisieren will. Alles was darüber hinausgeht ist allerdings jenseits seiner Reichweite. Vielleicht eines Tages, aber sicher nicht heute.

________________________________________________________________________
There's a typo in the Bible.
It should read "The geek shall inherit the earth".
09.06.2014, 13:58 Uhr - Editiert von Fly, alte Version: hier
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
...............
Re(15): Heute programmieren lernen - welche Ziel-Plattformen?
09.06.2014, 14:16:08
Noch einmal: der Thread dreht sich um Einsteigerplattformen.

Daß jede Plattform Grenzen hat, ist klar.
Aber wo die liegen, das ist ein Prozess, den jeder Einsteiger für sich ertasten muß.
Wenn man darüber hinaus ist und weiß, was man braucht + welche es bietet ... andere Baustelle.

Embedded Systeme differenzierten sich immer schon in polling- und interrupt-basierte bzw. solche mit realtime-Betriebssystem.

  Du wirst damit beispielsweise nie einen USB-Controller schreiben können, da
hier das Timing extrem genau stimmen muss.

das FTDI Vinculum schlägt genau in die Kerbe, ist aber nur Shield-, aber nicht Code-kompatibel.
Teensy's können zumindest native USB-Geräte wie HIDs spielen.

Ich wüßte jetzt auch nicht wie man beispielsweise ein kapazitives Touch-System
damit realisieren soll, auch weil der Zugriff auf die dafür notwendigen Teile
des AVR zu ungenau wäre.

für solche Anwendungen gibt es fix-fertige Shields.

Arduino hat sicher seine Existenzberechtigung im Hobbybereich, oder wenn man schnell ein kleines Projekt realisieren will. Alles was darüber hinausgeht ist
allerdings jenseits seiner Reichweite. Vielleicht eines Tages, aber sicher
nicht heute.

mit der Aussage kann ich leben, füge aber hinzu/wiederhole: Arduino hat eine Lawine an Entwicklungen und neuer Vielfalt losgetreten, von der auch die Profis profitieren.
Und er entwickelt sich stürmisch.

Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
....
Re(4): Heute programmieren lernen - welche Ziel-Plattformen?
09.06.2014, 19:50:30
SQL ist turing complete

das ist die Turingmaschine (weißt schon ... Papierstreifen, Schreib/lesekopf) auch, und trotzdem würde sie keiner als "Computer" bezeichnen.
(und man komme mir auch nicht mit Sprüchen wie "ich bin HTML-Programmierer" %-) )

Ich habe vor mir irgendwann eine funktionale Sprache anzutun.

das Feature findet sich ja neuerdings auch in der Java-Welt selbst. Leider führend manche Konzepte ein Nischendasein, aber sie gesehen, verstanden und spielerisch betrieben zu haben, hilft bei bestimmten Aufgabenstellungen dennoch.
Oder erzähl einem Scriptkiddie mal was von "logischer Programmierung" und "Inferenzmaschine"...  viele Coder und Projekte plagen sich aus purer Unkenntnis mit schlicht den falschen Werkzeugen.

Ich kann cmd, Powershell, VBScript und C# (scriptcs, Roslyn)

Shellsprachen zähle ich nur bedingt dazu, weil man da ausufernd (weil auf 2 Ebenen) mit Quoting arbeiten muß und es meist 0 Datentypen gibt.
Powershell ... eher eine Macro-/Steuersprache, detto VB*

Ich meine keine zusammengeschusterten Dialekte von irgendwas, sondern Sprachen, die mit Blick auf bestimmte Eigenschaften  sauber designed wurden und ein Ökosystem von Bibliotheken, Werkzeugen und Frameworks entwickelt haben, aber immer noch interpretiert werden (ja - Begriffe und Konzepte wie P-Code, Stackmaschinen, JVM, LLVM, .NET/Mono etc. und ihre Anwendung/Verbreitung sind mir bekannt - dennoch, sind eben eine Reihe von Sprachen immer noch "klassische Interpretersprachen" und andere eindeutig den Compilersprachen zuzurechnen, auch wenn die Grenzen verschwimmen.)

Als wesentliches Merkmal betrachte ich außerdem, daß moderne Scriptsprachen auf mehreren Plattform laufen und sich dort (weitgehend) ident anfühlen und verhalten (was man bei bash unter cygwin grad noch behaupten könnte).

Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung