Konverterings program: val av språk och synpunkter

Permalänk
Medlem

Konverterings program: val av språk och synpunkter

Hej

Jag tänkte göra ett program som läser in en fil i ett visst format, t.ex. SYSEX och konverta det till ett annat.

Input fil -> MAP-fil (source) -> Populera Class/Struct(XML?) med inlästa parametrar -> Encoding m.h.a MAP-fil (dest) -> Output fil.

Vilket språk skulle ni välja och några synpunkter på min idé på programflödet?

Visa signatur

Ryzen 9 5950X, 32GB 3600MHz CL16, SN850 500GB SN750 2TB, B550 ROG, 3090 24 GB
Har haft dessa GPUer: Tseng ET6000, Matrox M3D, 3DFX Voodoo 1-3, nVidia Riva 128, TNT, TNT2, Geforce 256 SDR+DDR, Geforce 2mx, 3, GT 8600m, GTX460 SLI, GTX580, GTX670 SLI, 1080 ti, 2080 ti, 3090 AMD Radeon 9200, 4850 CF, 6950@70, 6870 CF, 7850 CF, R9 390, R9 Nano, Vega 64, RX 6800 XT
Lista beg. priser GPUer ESD for dummies

Permalänk
Medlem
Skrivet av Herr Kantarell:

Hej

Jag tänkte göra ett program som läser in en fil i ett visst format, t.ex. SYSEX och konverta det till ett annat.

Input fil -> MAP-fil (source) -> Populera Class/Struct(XML?) med inlästa parametrar -> Encoding m.h.a MAP-fil (dest) -> Output fil.

Vilket språk skulle ni välja och några synpunkter på min idé på programflödet?

Har du redan kunskap inom ett språk som är kapabelt att utföra det här?

Visa signatur

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!
Felkod40

Permalänk
Medlem
Skrivet av freddyfresh:

Har du redan kunskap inom ett språk som är kapabelt att utföra det här?

Funderar på python

Visa signatur

Ryzen 9 5950X, 32GB 3600MHz CL16, SN850 500GB SN750 2TB, B550 ROG, 3090 24 GB
Har haft dessa GPUer: Tseng ET6000, Matrox M3D, 3DFX Voodoo 1-3, nVidia Riva 128, TNT, TNT2, Geforce 256 SDR+DDR, Geforce 2mx, 3, GT 8600m, GTX460 SLI, GTX580, GTX670 SLI, 1080 ti, 2080 ti, 3090 AMD Radeon 9200, 4850 CF, 6950@70, 6870 CF, 7850 CF, R9 390, R9 Nano, Vega 64, RX 6800 XT
Lista beg. priser GPUer ESD for dummies

Permalänk
Inaktiv

Det beror på faktorer som vilken miljö det ska köras i, hur avancerad det är och hur det ska användas.
För enklare scriptning i windows är powershell nog bland det vanligaste av anledningar som att det finns som standard och inget man behöver installera, dessutom är det ett språk som nästan alla kan och man kan se och stega koden direkt utan att det behöver kompileras.

Nackdelen är såklart att om det man ska utföra är lite större eller prestandakraven högre så bör man välja ett annat språk.

Angående python så visst är det bra om man kan det, för min egen del ser jag inte riktigt behovet att lära mig python då jag gör jobbet så mycket snabbare i c#/c++/java. Min poäng är det han ovanför nämnde att det är lättast att göra i det språk man behärskar.

En fråga man behöver ställa sig varför ska man göra konverteringen? Vet man det så vet man hur programmet bör utföras, det kanske ska köras av sig själv som en windowsservice som matar information till en annan applikation etc? (dessa appar kallar vissa för drivers)

Permalänk
Datavetare

Här ju den stora frågan: vad är syftet med övningen?

Om det bara handlar om att lösa just detta specifika problem och du inte förväntar dig att göra liknande program flera gånger till kommer det gå snabbast att ta ett språk du redan behärskar.

Om målet kanske lika mycket är att passa på att lära sig mer om just denna typ av datalogiska problemdomän som att lösa den specifika uppgiften skulle jag säga: ta ett språk som lämpar sig väl för att utveckla domänspecifika språk.

Bästa jag kan komma på då är Clojure (eller någon annan LISP). För LISP är kod och data samma sak, man kan därför väldigt enkelt göra generella lösningar för att översätta från en syntax till en annan (d.v.s. göra en form av kompilator).

Om LISP känns väl utanför bekvämlighetszonen och man vill köra med OOP känns Ruby som det självklara valet. För OOP står språk som Ruby och Smalltalk i en klass för sig själva vad det gäller "ren" OOP. OOP stödet i Python är tyvärr rätt dåligt. Många av de mer kraftfulla OO-sakerna man kan göra i Ruby och Smalltalk är inte möjligt i språk som C++, Java och C#. Av Smalltalk och Ruby är idag det senare det självklara valet, Smalltalk är rätt gammalt och används inte längre så mycket, vilket betyder att stödet i moderna miljöer är rätt dåligt.

Python är också ett bra val (fast man ska nog inte köra OOP vägen), så det kan absolut används. Men självklart fungerar det med vilket språk som helst som du behärskar väl.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av Yoshman:

Här ju den stora frågan: vad är syftet med övningen?

Om det bara handlar om att lösa just detta specifika problem och du inte förväntar dig att göra liknande program flera gånger till kommer det gå snabbast att ta ett språk du redan behärskar.

Om målet kanske lika mycket är att passa på att lära sig mer om just denna typ av datalogiska problemdomän som att lösa den specifika uppgiften skulle jag säga: ta ett språk som lämpar sig väl för att utveckla domänspecifika språk.

Bästa jag kan komma på då är Clojure (eller någon annan LISP). För LISP är kod och data samma sak, man kan därför väldigt enkelt göra generella lösningar för att översätta från en syntax till en annan (d.v.s. göra en form av kompilator).

Om LISP känns väl utanför bekvämlighetszonen och man vill köra med OOP känns Ruby som det självklara valet. För OOP står språk som Ruby och Smalltalk i en klass för sig själva vad det gäller "ren" OOP. OOP stödet i Python är tyvärr rätt dåligt. Många av de mer kraftfulla OO-sakerna man kan göra i Ruby och Smalltalk är inte möjligt i språk som C++, Java och C#. Av Smalltalk och Ruby är idag det senare det självklara valet, Smalltalk är rätt gammalt och används inte längre så mycket, vilket betyder att stödet i moderna miljöer är rätt dåligt.

Python är också ett bra val (fast man ska nog inte köra OOP vägen), så det kan absolut används. Men självklart fungerar det med vilket språk som helst som du behärskar väl.

Syftet är att kunna konvertera "patchar" mellan olika syntar.

Tack! (så länge det inte är TCL) Jag får kolla in Clojure! Har inte jobbat med LISP tidigare. Ruby vet jag betydligt mer om men har inte programmerat något i det.

Visa signatur

Ryzen 9 5950X, 32GB 3600MHz CL16, SN850 500GB SN750 2TB, B550 ROG, 3090 24 GB
Har haft dessa GPUer: Tseng ET6000, Matrox M3D, 3DFX Voodoo 1-3, nVidia Riva 128, TNT, TNT2, Geforce 256 SDR+DDR, Geforce 2mx, 3, GT 8600m, GTX460 SLI, GTX580, GTX670 SLI, 1080 ti, 2080 ti, 3090 AMD Radeon 9200, 4850 CF, 6950@70, 6870 CF, 7850 CF, R9 390, R9 Nano, Vega 64, RX 6800 XT
Lista beg. priser GPUer ESD for dummies

Permalänk
Medlem

Verkar som någon gjort något liknande för 12 år sen!
http://synthpatchconv.cvs.sourceforge.net/viewvc/synthpatchco...

Visa signatur

Ryzen 9 5950X, 32GB 3600MHz CL16, SN850 500GB SN750 2TB, B550 ROG, 3090 24 GB
Har haft dessa GPUer: Tseng ET6000, Matrox M3D, 3DFX Voodoo 1-3, nVidia Riva 128, TNT, TNT2, Geforce 256 SDR+DDR, Geforce 2mx, 3, GT 8600m, GTX460 SLI, GTX580, GTX670 SLI, 1080 ti, 2080 ti, 3090 AMD Radeon 9200, 4850 CF, 6950@70, 6870 CF, 7850 CF, R9 390, R9 Nano, Vega 64, RX 6800 XT
Lista beg. priser GPUer ESD for dummies