|
|
MATLAB's Attraktivitaet ist fuer mich vorbei. |
|
123bpm |
Forum-Newbie
|
|
Beiträge: 1
|
|
|
|
Anmeldedatum: 12.07.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.07.2012, 21:35
Titel: MATLAB's Attraktivitaet ist fuer mich vorbei.
|
|
|
|
|
Die Entscheidung, mich in diesem Forum anzumelden, ist zweierlei:
eine unglueckliche Session mit dem GUIDE Editor zum Einen und einem fehlenden anonymen Forum auf der Mathworks Seite.
Hintergrund:
ich arbeite beruflich taeglich mit Matlab, bin quasi Experte. Ich nutze hauptsaechlich die Instrument Control Toolbox, DSP und Communications, schreibe umfangreiche Software fuer Matlab und verwende auch MEX Funktionen, also C.
Mir sind einige negative Tendenzen bezueglich dieser Software ueber die Jahre aufgefallen oder besser aufgestossen, die zunehmend die Software fuer mich als passe erscheinen lassen.
1. Das ewige Java Gegurke:
ich weiss ja nicht, ob das schon immer so war, wahrschenlich nicht, aber der Gang zu Java ist fuer mich ein fataler Fehler. Wenn Editoren langsam werden, weil Java Code dahintersteckt, wenn diese ganze Software voellig aufgeblaeht Unmengen von Memory schluckt, dann laeuft definitiv irgendwas falsch! Ich habe heute klaeglich versucht, ein paar Elemente im GUIDE zu verschieben. Das hat solange gedauert, als wuerde ich vor einem Commodore 64 sitzen. Die GUI ist schon komplex, daher extrem langsame Reaktionszeiten des Editors. Es ist unertraeglich.
2. Objektorientierte Programmierung:
Im Sinne des Rapid Prototyping voellig verfehlter Ansatz. Einziger Vorteil besteht darin, dass Pointer realisiert werden, was bei Objektuebergabe an Funtionen Sinn macht. Aber: wenn ich ein Spektrum ausrechnen will, habe ich frueher einfach PSD verwendet. Jetzt muss ich spectrum.welch verwenden, welches nicht so genau arbeitet wie PSD, alles nur komplizierter und umstaendlicher macht, und absolut nichts dabei gewonnen ist.
Mir scheint, dass ein paar naive Informatiker ihre Konzepte auf Matlab anwenden wollten, ohne zu beruecksichten, dass obj orientierte Programmierung nur fuer Grossprojekte sinnvoll ist, ein Grossteil der User jedoch schnell zu ihrem Ziel gelangen wollen, und hierbei die Sache eher hinderlich erscheint.
3. Obsolete Funktionen
Was bitte vernlasst Mathworks, alte Funktionen aufzugeben und als OBSOLET zu deklarieren (mit Warning)? Hallo Mathworks, FIRMEN WOLLEN NICHT IHREN CODE UMSCHREIBEN, ist das verstaendlich ausgedrueckt?
Wieso wird ploetzlich die Parallelschnittstelle von Mathworks in Zukunft nicht mehr unterstuetzt (Intrument Control Toolbox)? Sehr viel HW Equipment arbeitet noch damit. Wieso muss sich der User von Mathworks irgendwas diktieren lassen?
4. Der Code wird immer ineffizienter
Matlab wird immer langsamer. So zumindest meine Erfahrung. man vergleiche mal ne Uraltversion mit der aktuellen ...
Fazit: Sobald eine Programmiersprache kommt, die in der Syntax Matrizenmanipulationen unterstuetzt (ja das gibts schon, ich weiss), Matrizen als Variablen kennt, und viele Features von Matlab beinhaltet, bin ich einer der ersten, die Byebye sagen.
Ich arbeite fuer ein Grossunternehmen in der Forschung.
Vielleicht sieht das jemand aehnlich wie ich.
MfG
M.
|
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 13.07.2012, 00:24
Titel: Re: MATLAB's Attraktivitaet ist fuer mich vorbei.
|
|
|
|
|
Hallo 123bpm,
Ich verwende GUIDE aus den genannten Gründen gar nicht, sondern erstelle alle GUIs manuell. Besondere Nachteile habe ich davon nicht, aber ich spare mir Inkompatibilitäten zwischen Matlab Releases, die zähe Bearbeitung und der Code kann deutlich knackiger werden als bei einer automatisierten Erstellung.
Die nur halbherzig implementierten Java-Methoden kannst Du auch meiner Ansicht nach als "Gegurke" bezeichnen. Auch im Jahr 2012 noch keine wirklich stabilen und umfangreichen UITABLE, UITREE und UITAB zur Verfügung zu haben, ist nicht überzeugend: Einerseits hatte da mein AtariST aus dem Jahr 1986 schon mehr Möglichkeiten zur GUI-Gestaltung, andererseits liegen viele ungenutzte Features der undokumentierten Java-Implementierungen brach.
Das Matlab-GUI profitiert nicht merklich von der Java-Umstellung. Ich kann zwar jetzt mit einigem handgestricktem Code die Farbe des Fonts im CommandWindow per Programm ändern oder alle Figures ins CommandWindow andocken. Für die tägliche Arbeit bringt mir das aber wenig.
Die obsoleten Funktionen sind für mich auch eine sehr große Herausforderung. Da zusätzlich auch noch Bugfixes hauptsächlich per Upgrade geliefert werden, ist man praktisch gezwungen, seinen Code zu modifizieren, wenn man ein stabiles System haben möchte - was ein Widerspruch in sich ist. Ich sehe keinen Sinn darin das VaxD-Format aus FOPEN zu entfernen, TEXTREAD und STRMATCH nicht mehr auszuliefern und die Reihenfolge der Outputs der Funktionen UNIQUE etc zu ändern. Die Änderungen in STRCMP wurden noch nicht mal dokumentiert.
Wenn ich nun Matlab mit z.B. der sehr ausgereiften Sprache C vergleiche, ergibt sich ein anderes Bild: Hier bekomme ich regelmäßig Streit mit Nutzern, die die C++-Kommentare in C-Code für Fehler halten, obwohl der C99-Standard nun schon 13 Jahre alt ist. Ein Equivalent für STRMATCH läßt sich zwar locker mit LCC2.4 und MSVC2010 compilieren. Wenn ich aber eine Library zur Estellung eines Diagrams in Matlab-Qualität einbinde, die unter MacOS, Linux und Windows läuft, muss ich für jeden Compiler erneut im Code wühlen. Selbst der moderne MSVC 2010 Compiler betreibt noch lustige numerische Eigenbrötlerei: X > NaN gibt mal TRUE oder FALSE zurück, je nachdem ob ich das /fp:fast Flag benutzt habe, oder die 64-Bit-Binaries automatisch per SSE2 umgesetzt werden. Dokumentiert ist das gar nicht, aber IEEE754 definiert dies ganz eindeutig: Jeder Vergleich mit NaN ist FALSE.
Insofern ist Matlab überraschend stabil, wenn man bedenkt, dass es ja mit wechselnden C-Compilern erstellt wird. Die numerischen Ergebnisse sind über sehr viele Jahre und Prozessorgenerationen hinweg zuverlässig.
Die Unterstützung für die Parallel-Schnittstelle ist zweischneidig. Einerseits ist es unverständlich, weshlab eine verbreitete Technik nicht mehr unterstützt wird. Andererseits ist technischer Fortschritt immer und in allen Bereichen mit diesem Phänomen konfrontiert. Was waren doch die alten analogen Telefone für ein stabiles System! Klare Sprachübertragung, keine Latenz, kein Echo, vom Stromausfall unbeeindruckt, und falls die Wählscheibe kaput war, konnte man die Impulswahl ja noch mit rythmischem Tippen auf die Gabel simulieren. Trotzdem verbreiten sich Handys und VoiceOverIP wie die Fliegen - nein, sorry, Handys sind ja schon wieder out und werden durch SmartPhones ersetzt. Mit dem ersten iPhone konnte man noch nicht mal richtig telefonieren!
Trotzdem habe auch ich letztes Jahr mein Tasten-Telefon mit Kabel dran gegen etwas mit Funktechnik ausgetauscht, die jeder technisch versierte Bastler mit einem bei Ebay gekaufen C123 Handy abhören kann.
Ich lasse meine Programme unter Matlab 5.3, 6.5, 2008b, 2009a und 2011b laufen. Die Geschwindigkeitsunterschiede dabei nicht eindeutig. Während 5.3 manchmal die Nase vorn hat wenn es um vektorisierten Code auf kleinen Datenblöcken geht, scheitert es natürlich 100%ig, wenn die 32-Bit-Adressierung nicht ausreicht. Das moderne MLint macht den Editor zwar deutlich träger, spart mir aber viele Dutzend Stunden Debug-Zeit. Während in 5.3 die GUIs sehr zügig am Bildschirm erscheinen, führt der Umweg über Java bei 2011b zu spürbaren Wartezeiten, z.B. 3 Sekunden länger bei komplexen GUIs. Manche JIT-beschleunigten Schleifen werden seit Matlab 7 dramatisch beschleunigt - ein Faktor 100 habe ich schon erlebt. Dann kann 5.3 und 6.5 überhautp nicht mehr mithalten. Ebenso, wenn BSXFUN oder CELLFUN zum Einsatz kommen.
Beim Geschwindigkeits-Vergleich kommt aber noch hinzu, dass 5.3 und 2011b/64 gar nicht auf der selben Plattform laufen können, so dass ein fairer Vergleich nicht trivial ist.
Es gibt hinreichend viele Hochsprachen mit ähnlichem Abstraktions-Niveau wie Matlab, z.B. SciPy, Octave, FreeMat, Scilab. Die sind sogar deutlich billiger als Matlab. Aber es sind auch sehr schöne Beispiele für die Vorteile von Matlab: Die GUIs leiden unter den gleichen Java-Problemen, sofern sie denn nun inzwischen überhaupt vorhanden sind. Zuverlässige Vorwärts- und Rückwärts-Kompatibilität über ein Jahrzehnt hinweg kann man ohne Frage ganz vergessen. Die OOP-Ansätze sind nicht ausgereift und der technische Support ist laienhaft oder nicht existent.
Deswegen werde ich in überschaubarer Zukunft auch weiterhin mit Matlab arbeiten und die Kröten schlucken: schwächliche GUIs, 0.1% inkompatibler Änderungen an Basis-Funktionen, ein zäher werdendes over-featured Java-Interface. Dafür erwarte ich, dass bei allen Berechnungen, die ich für Entscheidungen über Chirurgische Eingriffe bei Kindern benötige, auch in 10 Jahren auf einem Pentium23 mit SuperSonic-Threading und HypraSpreading immer noch die gleichen Zahlen heraus kommen. Nicht einmal die mit Windows und MacOS mitgelieferten Taschenrechner-Programme liefen so zuverlässig!
Gruß, Jan
|
|
|
Marco H. |
Forum-Guru
|
|
Beiträge: 404
|
|
|
|
Anmeldedatum: 12.11.10
|
|
|
|
Wohnort: Dortmund
|
|
|
|
Version: 2010a/2012b
|
|
|
|
|
|
Verfasst am: 13.07.2012, 00:36
Titel:
|
|
|
|
|
Hey 123bpm,
da hat sich aber wer Luft gemacht. In manchen Dingen muss ich dir wirklich recht geben in anderen aber weniger.
1. GUIs
Keine Frage das ist seit Jahren bekannt aber leider hat sich dort für uns Entverbraucher seit einiger Zeit nicht wirklich viel getan. Ehrlich gesagt wäre ich ggf. ohne Yair (undocumented Matlab) nicht mehr TMW Kunde, da in meinem Fall auch eine gewisse GUI flexibilität verlangt wird, die mit dokumentierten Sachen nicht möglich gewesen wären. Ich gehe davon aus, dass es auch mehreren Leuten so geht. Zudem macht eine GUI aufgrund nur des einen Main Threads umfangreichere Berechnungen unnnötig langsam. Die Zeit die man in Matlab durch leichte Berechnungserstellungen raushohlen kann macht man sich oft wieder mit GUI Problemen zunichte. Sehe ich im Gegensatz zu GUIDE den z.B. NetBeans IDE naja... Ich hoffe wirklich, dass möglichst bald was neues kommt.
2. Obsolete Funktionen und Kompatibilität von Matlab Releases
Ein Update des eigenen Quellcodes aufgrund eines neuen Matlab Releases kann durchaus einige Zeit in Anspruch nehmen. Bei mir ist das meist eine Zeit- Nutzenabschätzung ob ich mit dem neuen Produkt arbeite oder bei einem älteren Release bleibe. Auch ich arbeite in einem größeren Konzern im F&E-Bereich und habe für soetwas eben nicht immer die nötige Zeit. Aber soetwas findet man ja durchaus auch bei anderen Programmiersprachen wo die Dokumentation lange nicht so Umfangreich und durchaus lobenswert ist wie bei Matlab.
3. Der Code wird immer ineffizienter
Das kann ich jetzt nicht so unterschreiben. In meinem Fall sind die Berechnungen mit 2012b (Beta) doch um einiges schneller als vergleichsweise mit 2008b. Ältere Versionen habe ich noch nie verwendet.
Allerdings frage ich mich warum eine mit dem Compiler erstellte exe Datei mit 2012b-Beta 3 mal so groß ist wie z.B. eine mit 2010a was beim Starten mit erheblichen Zeiteinbußen verbunden ist (mittels mcc Befehl aus selben m File kompiliert). Dabei war doch gerade im 2011a/b die preload Zeit der mcr verringert worden. Jetzt dauerts vergleichsmäßig wieder länger als z.B. mit 2010a. Seltsam...
Die Leute von TMW haben oft gute Ideen wobei ich aber ab und an sehe das hier oder da etwas nur halb durchdacht oder zuende gebracht wurde. Z.B. hab ich es bislang noch nicht hinbekommen Bild und Ton innerhalb von Matlab (also nicht winopen) syncron abspielen zu lassen, kann aber avi Files einlesen. Irgendetwas stimmt doch da nicht. Dennoch bin ich im Großen und Ganzen sehr zufrieden mit Matlab. Wo hat man bitteschön im IT-Bereich so einen Technischen Support, der echt fix und produktiv weiterhelfen kann? Auch die Community hier oder in anderen Foren ist sehr angenehm.
Greetings
Marco
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 13.07.2012, 08:58
Titel:
|
|
Mein Hauptsorge beim Lesen des ersten Beitrags ist nicht die technische Kritik an sich, sondern die Tatsache, dass es scheinbar nötig ist dies anonym zu tun.
Wenn 123bpm viel Interaktion mit MathWorks hatte und die Zusammenarbeit unbefriedigend verlief -> OK, es gut seinen Frust loszuwerden. Aber ist das auch erfolgt? Und auf welchem Level? Hat der Leiter der Forschungsabteilung des grossen Konzerns mit MathWorks gesprochen? Sitzt jemand im MathWorks Advisory Board?
Andreas
|
|
|
flashpixx |
Forum-Guru
|
|
Beiträge: 355
|
|
|
|
Anmeldedatum: 19.04.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.07.2012, 12:38
Titel:
|
|
|
|
|
Ich muss mich auch an einigen Punkten anschließen. Für mich ist in Projekten eigentlich OOP definitiv immer dabei. In Matlab finde ich OOP wirklich noch in Kinderschuhen und das kann man sich heute einfach nicht leisten.
Die Aussage, dass viele prozedural arbeiten ist sicherlich ein Aspekt, aber z.B. kann ich in C++ sowohl OOP wie auch prozedural arbeiten, wo ist also das Problem bei Matlab.
GUI Funktionalität ist wirklich gruselig. Man kann eigentlich selbst den Code für eine Swing GUI in Java selbst schreiben, das geht oft schneller und einfacher als sich durch die Matlab GUI Aufrufe zu wühlen.
Funktionsdokumentation / -veränderung denke ich ist okay, klar manche Funktionsaufrufe verändern sich, aber es wäre hier eine bessere Dokumentation wünschenswert
Mit dem Support habe ich leider bisher in allen Punkten schlechte Erfahrung gemacht. Gerade bei einem Produkt wie Matlab, gehe ich, wenn ich ein Problem habe, davon aus, dass mir hier wirklich technisch auf hohem Niveau geholfen wird. Da ist leider wirklich noch Verbesserungsbedarf.
Ich bin inzwischen zu klassischer C++ Entwicklung übergangen, nachdem ich mir einige Jahre mit Matlab rum geärgert habe. Ich nutze für alle linearen Algebra Strukturen, die UBLas Bibliothek der Boost, über die "numerical Bindings" kann ich Atlas und LAPack direkt anbinden, so dass ich numerisch ordentlich arbeiten kann. MPI für parallele Anbindung wird auch direkt durch die Boost unterstützt. Threading geht mit Hilfe von OpenMP bzw. Boost Thread sehr schön. Falls ich dann doch eine GUI benötige nehme ich Qt. Und für das Lösen von DGLs gibt es OdeInt, das auch direkt mit den Boost Strukturen zusammen arbeiten kann. Die GSL ist auch mit sehr wenig Aufwand angebunden. Gerade die Boost und Atlas Mailingliste sind hervorragend und man bekommt schnell Hilfe, falls es Probleme gibt.
Matlab ist für mich somit nur noch für das schnelle Erstellen eines Proof-of-Concept notwendig, obwohl ich da auch schon teilweise direkt in C++ dies umsetze. Die Performance in C++ ist deutlich höher, als auf dem gleichen System mit identischem Matlabcode. Ich habe in meinen Codes cross-plattform Fähigkeit und ein sauberes OOP Konzept.
Matlab nutze ich halt häufig um mal schnell ein paar Daten zu plotten und da verwende ich als Austauschformat HDF 5, für das ich mir eine C++ Klasse geschrieben habe, die die STL und Boost Datenstrukturen direkt passend lesen und speichern kann. Mit Matlab kann man dann sehr einfach die Daten lesen und verarbeiten.
Ich bin leider in den letzten Jahren durchaus enttäuscht von Matlab, da ich anfangs dachte "wow was für ein tolles Programm". Ich finde es an vielen Stellen unübersichtlich und irgendwie nicht klar definiert. Zusätzlich kommen so Sachen hinzu, dass ich eigentlich von einer IDE erwarte, dass sie Syntax ergänzen kann, das geht in Matlab bis heute nicht. Teilweise herrscht zwischen verschiedenen OS unterschiedliche Encodings der Quellcodedateien, so dass Umlaute nicht korrekt dargestellt werden. Multilanguagesupport für den Quellcode vermisse ich komplett (in C++ gibt es gettext). Package / Namespace Strukturen um Kollisionen im Namensraum zu vermeiden gibt es gar nicht. Wenn schon mit Java gearbeitet wird, warum übernimmt man dann nicht das Packagekonzept aus Java !? Was ich auch hinderlich finde ist die Organisation von Klassen, warum bleibt man hier auch nicht konsistent z.B. mit Java eine Datei = eine Klasse. Anbindung von externen Javakomponenten ist an vielen Punkten auch ein Krampf, die Erfahrung bei mir, wenn ich manche Jars über den Befehl javaaddpath laden, stürzt Matlab ab, lade ich es über die classpath.ini funktioniert es.
Natürlich braucht man für C++ Einarbeitungszeit, aber die benötigt man in Matlab auch. Im Moment sehe ich zwischen Matlab und C++ von der Anwendung eher negative Punkte bei Matlab und daher nutze ich C++
@Andreas: Bezüglich der Anonymität gebe ich Dir in einigen Teilen recht. Nur wüsste ich jetzt nicht, wo und an wen man sich bei Mathworks wenden kann, um Hilfe zu bekommen. Meine Arbeitsweise bei Matlab ist seit Jahren learning-by-doing. Hilfe lesen, im Internet suchen und irgendwie versuchen eine Lösung zu finden. Da meine Erfahrung leider bezügl des Supports nicht gut sind, vermeide ich nun auch den Kontakt mit diesem, weil es letztendlich darauf hinausläuft, dass ich mir selbst helfen muss. Das sich dabei natürlich Frust aufbauen kann, sei durchaus verständlich, vielleicht wäre einfach eine Kommunikation mit Mathworks & der Community sinnvoll, wodurch man auch das Gefühl bekommt, dass sich Mathworks der Probleme annimmt.
Was mich interessiert: Warum ist das OOP Konzept von Matlab inkonsistent, Stichwort Handleklassen. Dieses Konzept gibt es in keiner anderen mir bekannten Sprache? Warum existiert im Matlab Editor schon seit Jahren und unterschiedlichen Versionen immer noch keine Ergänzung von Befehlen, das ist heute in jeder IDE Standard?
|
|
|
Alex_STGT |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.07.2012, 18:44
Titel:
|
|
|
|
|
Ich muss hier leider wiedersprechen. Wenn man den Support von Matlab mit dem Support von anderen technischen Software (Yokogawa, Labview), aber auch mit dem Support von anderen Firmen wie Microsoft vergleicht arbeitet man hier eindeutig motivierter. Normalerweise wird man mit seinem Problem auf die unendliche Reise zwischen "neu booten" "alle updates installiert?" "Deinstallieren und neuinstallieren" "32bildschirmseiten-FAQ alleine durchlesen" geschickt, und dabei von einem zum Nächsten Ansprechpartner weitergereicht, die mich alle zu mindestens 3 Aufforderungen per E-Mail oder Telefon nötigen, damit sie mir überhaupt antworten.
Bei Mathworks, zumindest in DE, wird mir relativ direkt und motiviert geholfen. Dabei gehe ich stehts an die Grenzen meines Systems und darüber hinaus (undocumented matlab, CoSimulation...). Statt dich abzuwimmeln wird zügig geantwortet und nach 2-3 Tagen hat man eine Lösung/workarround , außer man ist wirklich an eine Grenze gegangen wo Matlab systembedingt nicht mehr weiterkommt. (z.B. echtzeitfähigkeit).
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 16.07.2012, 08:11
Titel:
|
|
|
|
|
@all: Ich möchte nicht von den technischen Bedenken ablenken - ich habe zu den angesprochenen Themen aber kein Know-How. Tatsächlich bin ich selber vor vielen Jahren zu MATLAB gekommen, weil es alle die für mich überkomplizierten Dinge wir Klassen, Zeiger und Objekte nicht hatte, bzw. es nicht nötig war. Ich konnte einfach das machen was ich wollte, nämlich Bildverarbeitung, und das unmittelbar.
@flashpixx:
Der Technische Support (TS) ist in jedem Fall ein guter Einstiegspunkt, aber es kommt darauf an was man benötigt oder erwartet. TS kann z.B. nur liefern was es gibt, keine neue Funktionalität erstellen. TS stellt den Entwicklern technische Informationen zur Verfügung sowie die Quantität der Vorschläge und Probleme. Entscheidungen werden aber in einem grösseren Team getroffen. Z.B. sind manche neuen Eigenschaften zwar theoretisch toll, aber haben Auswirkung auf die Performance. Dann muss man abwägen. Ausserdem gibt es geschätzt 10 mal mehr Vorschläge als Zeit sie umzusetzen (Und wer jetzt sagt, dann müsse man mehr Entwickler einstellen, wenn verweise ich mit Freude auf die Stellenanzeigen...).
Wenn der Themenstarter in der Forschungsabteilung eines grossen Unternehmens arbeitet, dann sollte es da ein paar Hundert MATLAB Nutzer geben. Und wenn gewisse Eingenschaften dort einen hohen Nutzen haben, dann dürfte es nützlich sein dieses dem Vertrieb mitzuteilen.
Zitat: |
Was mich interessiert: Warum ist das OOP Konzept von Matlab inkonsistent, Stichwort Handleklassen. Dieses Konzept gibt es in keiner anderen mir bekannten Sprache? Warum existiert im Matlab Editor schon seit Jahren und unterschiedlichen Versionen immer noch keine Ergänzung von Befehlen, das ist heute in jeder IDE Standard? |
Das kläre ich gerne und poste das Ergebnis hier. Dazu schlage ich vor, dass flashpixx einen neuen Thread öffnet. Falls der Support schon involviert war, würde ich gerne mehr wissen, so dass ich die Anfrage prüfen kann.
Andreas
|
|
|
flashpixx |
Forum-Guru
|
|
Beiträge: 355
|
|
|
|
Anmeldedatum: 19.04.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.07.2012, 08:40
Titel:
|
|
|
|
|
@Andreas: Vielen Dank für die Infos. Bezüglich der Stellenausschreibungen bei Mathworks schaue ich schon öfters einmal nach
Bezügl der Klassen / Objekte wäre für die mich die Frage, wie realisiert man denn ohne diese Strukturen große Projekte. Ich kann dies dann entweder nur durch eine "sehr harte" Guidestyle Struktur bewerkstelligen, vor allem wenn mehrere Entwickler involviert sind bzw. durch entsprechende Unittests feststellen ob die Codes noch konsistent sind.
Das muss ich zwar bei OOP auch machen, aber dort habe ich durch die Vererbungshierarchie durchaus Möglichkeiten zu garantieren was in einer Klasse vorhanden sein muss.
Ich bin da wirklich neugierig, weil ich gerade im Hochschulbereich häufig sehe, dass man die Quellcodes einfach dateibasiert verarbeitet und oft so lange "bastelt", bis das passende heraus kommt. Mir fällt es gerade in der OOP in Matlab schwer, dass ich mir die IDE nicht anzeigt, welche Methoden / Properties eine Klasse hat. Gerade wenn mein Projekt mehrere Klassen besitzt, habe ich dann mehrere Codefenster auf, in denen ich dann schauen kann.
Zeiger in Matlab halte ich auch für nicht notwendig.
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 16.07.2012, 11:17
Titel:
|
|
|
|
|
Hallo,
Meine Meinung über den Technischen Support (TS) von TMW habe ich in diesem Forum schon öfters mal geäußert. Ich möchte dies trotzdem nochmal wiederholen:
Wann immer ich mich an den TS gewendet habe, bekam ich entweder innerhalb von maximal 3 Tagen kompetente und freundliche Unterstützung. Teilweise wurden die Fragen weiter eskaliert und die entsprechenden Entwickler kontaktiert. Es sah so aus, als wäre eine einzige Anfrage dabei versandet, aber ich bekam die Lösung in Form einer modifizierten Funktion in einem neuen Release, die genau mein Problem löste. Zu sehr speziellen Fragen bekam ich auch schon Rückrufe per Telefon.
Aber was für mich noch viel wichtiger ist: 98% meiner Fragen werden bereits von "help" und "doc" gelöst. 1% der anderen Fragen kann ich entweder auf goMatlab, MATLAB Answers oder in der FileExchange lösen. Dies ist oft noch schneller als den TS zu kontaktieren. Allerdings sind es ja auch z.T. Mitarbeiter des TS, die in den Foren Fragen beantworten!
Wenn ich dies mal mit der Dokumentation und dem Support von MSVC2010 vergleiche, freue ich mich jedes Mal wieder mit Matlab arbeiten zu können.
Da für meine Arbeit immer noch
gilt, ist gerade der TS und die Dokumentation für mich ein ausschlaggebendes Argument für Matlab. Und genau deshalb übe ich z.B. hier im Forum bisweilen harsche Kritik, wenn ein- oder zweimal pro Jahr ein nicht- oder falsch-dokumentiertes Feature von Matlab einige Stunden meiner Arbeitszeit kostet. Ich äußere Kritik, bei Bedarf, zunächst unter meinem halb-anonymen Account hier, aber auch persönlich per Mail oder Telefon gegenüber TMW. Ich kann mir nicht vorstellen, dass dies zu irgendwelchen Nachteilen führen könnte.
Gruß, Jan
PS. Ich stehe in keinem Beschäftigungsverhältnis zu MathWorks.
|
|
|
flashpixx |
Forum-Guru
|
|
Beiträge: 355
|
|
|
|
Anmeldedatum: 19.04.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.07.2012, 11:45
Titel:
|
|
|
|
|
Jan S hat Folgendes geschrieben: |
Aber was für mich noch viel wichtiger ist: 98% meiner Fragen werden bereits von "help" und "doc" gelöst. 1% der anderen Fragen kann ich entweder auf goMatlab, MATLAB Answers oder in der FileExchange lösen.
|
Bei Fragen bezüglich des Syntax bzw. Anwendung stimme ich dem voll zu.
Jan S hat Folgendes geschrieben: |
Wenn ich dies mal mit der Dokumentation und dem Support von MSVC2010 vergleiche, freue ich mich jedes Mal wieder mit Matlab arbeiten zu können.
|
Die MSDN Library ist in meinen Augen um ein vielfaches umfangreicher als die Matlab Hilfe und leider gibt die Hilfe z.B. über die Java Anbindung nur sehr beschränkt Informationen. Z.B. kommen manche Matlab Version nicht mit XSL 2 klar, das XSL wird zwar verarbeitet aber die Ausgabe liefert ein nicht nachvollziehbares Ergebnis. Keine Fehlermeldung o.ä. und in der Hilfe wurde auch nicht explizit drauf hingewiesen, dass nur XSL 1 unterstützt wird.
libxml bzw libxslt oder eben unter MS die MS XML / XSLT kann ich aktuell sicher sein, dass dies dann auch fehlerfrei unterstützt wird. Inzwischen steht in der Hilfe drin, dass nur die Version 1.0 unterstützt wird http://www.mathworks.de/help/techdoc/ref/xslt.html wobei ich natürlich hier schon es schon sehr negativ finde, dass der XSL 2.0 Stand, der seit Anfang 2007 existiert nach 5 Jahren immer noch nicht unterstützt wird und der 3er Standard schon in den "Startlöchern" steht.
Es sind zwar "nur" Kleinigkeiten, aber das Debugging bzw. die Fehlersuche kostet bei solchen Problemen enorm viel Zeit.
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 16.07.2012, 12:43
Titel:
|
|
@flashpixx:
Ich habe jetzt intern jemanden mit mehr OOP Ahnung befragt, was nicht schwierig zu finden ist . Fall es noch mehr Gesprächsbedarf gibt, sollten wir es wirklich ausserhalb dieses Threads machen - es wird sonst unübersichtlich.
1. Ergänzung von Befehlen AKA Auto Complete. Das ist ständig erweitert worden und funktioniert bei mir in R21012a für Befehlsnamen. Es gibt auch ein Enhancement Request für die Autovervollständigung der kompletten Befehlssyntax inklusive Klammern.
Interessant ist, dass diese Idee MathWorks intern schon früher formuliert wurde, aber es erst seit 2010 von insgesamt 2 (zwei) Anwendern weltweit an MathWorks auf den offiziellen Kanälen heran getragen wurde. Einer davon war ein deutscher Kunde mit Vornamen Oliver. Zufall?
Auf jeden Fall ein exzellentes Beispiel von "klingt nützlich, aber viele wollen es wohl nicht haben".
Andreas
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 16.07.2012, 12:47
Titel:
|
|
2. Für größere Projekte wäre es eine Überlegung Wert mit einen Source Control / Version Control System zu arbeiten:
http://www.mathworks.com/help/techdoc/matlab_env/f7-5297.html
Auf Simulink Seite siehe Simulink Projects.
3. Class Hierarchy. Das gibt es ein Dokument das "Is there a graphical class viewer / class editor in MATLAB that generates
class diagrams from classdef files and vice versa?" Verbesserungsvorschlag. 4 Kunden weltweit. 2 aus Deutschland: René und Christoph. Hier wird von MathWorks auf
http://www.mathworks.com/matlabcentral/fileexchange/21206
als Workaround verwiesen.
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 16.07.2012, 12:48
Titel:
|
|
Das mit der "Inkonsistenz" ist nicht so klar.
"Was meint der Nutzer mit inkonsistent? Sieht er einen Widerspruch innerhalb von MATLAB bei der Verwendung von Handle classes? Oder meint er einfach, dass er das Konzept aus anderen Sprachen nicht kennt?"
Andreas
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 16.07.2012, 13:02
Titel:
|
|
|
|
|
@123bpm - welcher die Büchse der Pandora geöffnet hat, sich aber nicht mehr meldet:
- Geschwindigkeit: Ich höre das seitdem ich mit MATLAB arbeite, also seit 17 Jahren. Klar macht Java z.T. langsam, aber die Frage ist wie das mit dem Gesamtworkflow ist. Nur ein paar Beispiele:
a) Grosses Forschungsinstitut. Hält seit Jahren an serverbassiertem Rechnen auf Solaris fest. Endnutzer benutzen ihre privaten Win64 Laptops um Ergebnisse zu bekommen.
b) Grosser Automobilhersteller. Hat einen so agressiven Virenscanne, dass Codegenerierung um den Faktor 3 verlangsamt wird. IT Richtlinien erhöhen damit die Zeit des grossen Modells von 1h auf 3h.
Ich kann viele Beispiele bringen. *Bitte* - einfach den konkreten Fall konkret untersuchen lassen.
- Obsolete Funktionen: Ja, kann ich verstehen, aber ist statistisch sehr selten. Aber so wie einem kranken Patienten es nichts nützt wenn eine Ansteckungswahrscheinlichkeint 1% ist - niemand mag das. Alle geplanten Inkompatibilitäten müssen vom Technischen Support freigegeben werden. U.a. wird auch betrachtet wie hoch der Aufwand ist etwas zu ändern. Wenn ich ein wenig "Suchen und Ersetzen" machen muss, dann halte ich das für zumutbar. Ich kann andere Erlebnisse natürlich nicht ausschliessen. Auch für die Hilfe dazu und die Gründe -> Technischer Support.
Andreas
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|