Arduino vs. andra utvecklingsmiljöer
Postat: 21 oktober 2013, 01:41:19
Nu har jag i ett antal olika trådar följt vad som nästan kan benämnas ett krig mellan å ena sidan Arduino användare och å andra sidan en grupp som verkar anse att det är något som motsvarar det som katter brukar släpa in. Jag kan inte låta bli att förundras lite över de kraftiga känslor som ämnet verkar riva upp hos båda sidor, delvis därför att jag själv använder såväl Arduino som andra utvecklingsmiljöer och tycker att alla fyller sin funktion. Till sist kände jag att jag inte kunde vara passiv längre. Jag är inte så naiv att jag tror att jag kan få stopp på "kriget", men jag hoppas att kunna få lite vettiga synpunkter och inte bara pajkastning...
Till att börja med tycks det ju finnas en diskussion om exakt vad Arduino är. Själv anser jag att begreppet Arduino skall tolkas som utvecklingsmiljön - dvs antingen mjukvaran (IDE) eller hårdvaran i form av labbkorten eller båda delarna tillsammans. En ensam ATmega, med eller utan bootloader, är ingen Arduino i sig själv.
Om man tittar på IDE mjukvaran, så visst finns det brister i den - men det gör det i alla andra IDE program som jag använt också. Men det går relativt snabbt att komma igång med Arduino programmeringen, inte minst då det följer med många exempelprogram och det finns en uppsjö av bibliotek och exempel att hämta hem från Internet. På vilket sätt skulle det här vara sämre än andra IDE för ATmega, PIC eller valfri annan processor? Att språket är en modifierad variant av C borde ju heller inte vara ett problem - antingen så kan man C från början och då lär man inte ha några större problem att hantera skillnaderna, eller också (som jag, som i grunden är en Delphi programmerare) så har man inte programmerat i C tidigare och har kanske heller inte (återigen som jag) någon tanke på att börja med det i andra sammanhang och då spelar skillnaderna heller ingen roll. På vilket sätt skulle det vara sämre att programmera en ATmega i Arduino-C än att programmera en PIC i pascal?
När det gäller hårdvaran så ser jag inte varför Arduino skulle vara sämre än någon annan labb-miljö? Jag har tidigare använt olika labbkort för PIC, men en fördel (som jag ser det) med Arduino är alla de färdiga shields som finns att köpa. Under en utvecklingsprocess är det rätt skönt att kunna fokusera på mjukvara och hårdvara separat. Är det en riktig produkt man bygger så gör man ju ändå ett eget kort i slutändan - men på vägen dit är det ju bra om man kan använda färdiga byggstenar.
Till sist är det då den ofta kritiserade bootloadern. En av de första sakerna jag letade rätt på när jag höll på med PIC var en bootloader. Jag ser gärna att det finns en möjlighet att uppdatera mjukvaran i mina produkter ute på fältet, utan att behöva ha en programmerare med sig. Och vill man inte ha den så kan man ju alltid köra utan... Det är ju dessutom inte helt ovanligt att kommersiella produkter har just en bootloader (t.ex. de allra flesta moderkort i våra PC), på vilket sätt är Arduinons bootloader sämre?
Jag har det sista året byggt ett antal projekt med ATmega programmerad med Arduino IDE (och med bootloader) på egna kort. Utvecklingen har oftast gjorts på orginalhårdvaran, innan det riktiga kortet designats. Jag har också använt "riktiga" Arduino kort i färdiga produkter, i de fall det varit enklast. Om man ska tro det som skrivs i vissa inlägg här så skulle det innebära att jag är en oprofessionell utvecklare, men den bilden delar inte jag själv. Dessa produkter och program används dagligen (ibland 24/7) av mig, mina kollegor och våra kunder. Resultatet kan ses av i bland miljontals tv-tittare och varken mina kunder eller jag (som i grunden är tv-producent och inte programmerare) skulle acceptera lösningar som inte håller måttet.
Eller har jag helt missat något med Arduinon, som gör att jag borde lämna plattformen och ägna mig åt att lära mig något annat istället?
Till att börja med tycks det ju finnas en diskussion om exakt vad Arduino är. Själv anser jag att begreppet Arduino skall tolkas som utvecklingsmiljön - dvs antingen mjukvaran (IDE) eller hårdvaran i form av labbkorten eller båda delarna tillsammans. En ensam ATmega, med eller utan bootloader, är ingen Arduino i sig själv.
Om man tittar på IDE mjukvaran, så visst finns det brister i den - men det gör det i alla andra IDE program som jag använt också. Men det går relativt snabbt att komma igång med Arduino programmeringen, inte minst då det följer med många exempelprogram och det finns en uppsjö av bibliotek och exempel att hämta hem från Internet. På vilket sätt skulle det här vara sämre än andra IDE för ATmega, PIC eller valfri annan processor? Att språket är en modifierad variant av C borde ju heller inte vara ett problem - antingen så kan man C från början och då lär man inte ha några större problem att hantera skillnaderna, eller också (som jag, som i grunden är en Delphi programmerare) så har man inte programmerat i C tidigare och har kanske heller inte (återigen som jag) någon tanke på att börja med det i andra sammanhang och då spelar skillnaderna heller ingen roll. På vilket sätt skulle det vara sämre att programmera en ATmega i Arduino-C än att programmera en PIC i pascal?
När det gäller hårdvaran så ser jag inte varför Arduino skulle vara sämre än någon annan labb-miljö? Jag har tidigare använt olika labbkort för PIC, men en fördel (som jag ser det) med Arduino är alla de färdiga shields som finns att köpa. Under en utvecklingsprocess är det rätt skönt att kunna fokusera på mjukvara och hårdvara separat. Är det en riktig produkt man bygger så gör man ju ändå ett eget kort i slutändan - men på vägen dit är det ju bra om man kan använda färdiga byggstenar.
Till sist är det då den ofta kritiserade bootloadern. En av de första sakerna jag letade rätt på när jag höll på med PIC var en bootloader. Jag ser gärna att det finns en möjlighet att uppdatera mjukvaran i mina produkter ute på fältet, utan att behöva ha en programmerare med sig. Och vill man inte ha den så kan man ju alltid köra utan... Det är ju dessutom inte helt ovanligt att kommersiella produkter har just en bootloader (t.ex. de allra flesta moderkort i våra PC), på vilket sätt är Arduinons bootloader sämre?
Jag har det sista året byggt ett antal projekt med ATmega programmerad med Arduino IDE (och med bootloader) på egna kort. Utvecklingen har oftast gjorts på orginalhårdvaran, innan det riktiga kortet designats. Jag har också använt "riktiga" Arduino kort i färdiga produkter, i de fall det varit enklast. Om man ska tro det som skrivs i vissa inlägg här så skulle det innebära att jag är en oprofessionell utvecklare, men den bilden delar inte jag själv. Dessa produkter och program används dagligen (ibland 24/7) av mig, mina kollegor och våra kunder. Resultatet kan ses av i bland miljontals tv-tittare och varken mina kunder eller jag (som i grunden är tv-producent och inte programmerare) skulle acceptera lösningar som inte håller måttet.
Eller har jag helt missat något med Arduinon, som gör att jag borde lämna plattformen och ägna mig åt att lära mig något annat istället?