PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Was ist am schwierigsten zu programmieren?


Gast
2006-03-27, 20:34:20
Mir ist bewusst, dass man die Frage nicht wirklich beantworten kann, aber es kann ja jeder mal etwas mit BEGRÜNDUNG hinschreiben.

meine Meinung: Hochsprachen-Compiler: Typprüfungen, Optimierungen,...

Marscel
2006-03-27, 20:43:32
Ich persönlich stelle mir eine Schach-KI recht schwer vor, ich habs noch nicht probiert, insofern kann ich dazu nichts konkretes zu sagen.

Gast
2006-03-27, 20:56:22
Wenn schon, dann eine KI für 'GO' ;)

Coda
2006-03-27, 21:00:12
Jopp. Go ist pervers...

RoKo
2006-03-27, 21:50:48
Ich persönlich stelle mir eine Schach-KI recht schwer vor, ich habs noch nicht probiert, insofern kann ich dazu nichts konkretes zu sagen.
Solange Du nicht gleich den Weltmeister besiegen willst ist es sehr einfach. Go, wie hier schon erwähnt, ist schwer, da man in dem Spiel einfach so viele Möglichkeiten hat, dass man mit der klassischen Spielbaumauswertung nicht weit genug kommt.

Edit: Mein Vorschlag sind JIT-Compiler.

Aqualon
2006-03-27, 21:56:55
Ich stell mir sehr schwierig vor einen Browser zu schreiben, der die kompletten W3C-Specs unterstuetzt und dabei auch noch sicher, schnell und komfortabel ist.

Aqua

Edit: Und natuerlich den ganzen muelligen Code, der im Netz rumfliegt, sinnvoll darstellt ;)

Coda
2006-03-27, 22:07:07
Die W3C-Specs zu unterstützen ist nicht so schwierig, viel eher den ganzen Müll im Netz (inkl. 3DCenter :tongue:) noch vernünftig darzustellen.

5tyle
2006-03-27, 22:27:33
hmmm. Ein Programm das in der Lage ist, sich selbst fortlaufend weiterzuentwickeln und zu verbessern/ anzupassen ?

Ein Programm, dass in der Lage ist, ein mit MD5 gehashtes Passwort wieder in Klartext darzustellen? :rolleyes:

Coda
2006-03-27, 22:40:11
hmmm. Ein Programm das in der Lage ist, sich selbst fortlaufend weiterzuentwickeln und zu verbessern/anzupassen?Das ist schwierig weil du erstmal definieren müsstest was "besser" ist.

Ein Programm, dass in der Lage ist, ein mit MD5 gehashtes Passwort wieder in Klartext darzustellen? :rolleyes:Das ist nicht schwierig sondern unmöglich.

Trap
2006-03-27, 22:51:43
Der do-what-i-mean-button für die IDE ;)

Coda
2006-03-27, 22:55:42
Der do-what-i-mean-button für die IDE ;)Der "do-what-I-mean-button" für alles wäre glaube ich noch schwerer :D

Aqualon
2006-03-27, 23:19:45
Das ist nicht schwierig sondern unmöglich.Unmoeglich oder nicht schwierig (wenn es nur um ne Hash-Collision geht).

Aqua

Coda
2006-03-27, 23:28:37
Unmoeglich oder nicht schwierig (wenn es nur um ne Hash-Collision geht).Er wollte das ursprüngliche Passwort. Eine Collision hast du bei MD5 schnell zusammen.

Stone2001
2006-03-27, 23:31:42
Wenn schon, dann eine KI für 'GO' ;)
Jopp. Go ist pervers...
Was ist daran schwierig? ???

Man nehme ein mehrschichtiges Perzeptron, kombiniert mit einem gutem Lernverfahren (modi. Backprogagation oder Reinforcement Learning) und fertig ist die KI. :) Da ist nichts wirklich Wildes dabei. Einzig die Frage nach dem Lernen will wohl überlegt sein.

Wir wollten das mal unsere 4. Semestler proggen lassen, aber der Prof wollte nicht.

Kinman
2006-03-27, 23:37:46
hmmm. Ein Programm das in der Lage ist, sich selbst fortlaufend weiterzuentwickeln und zu verbessern/ anzupassen ?


Je nach dem was "besser" ist. Ein neurales Netz ;)

mfg Kinman

Coda
2006-03-27, 23:40:33
Was ist daran schwierig? ???Eine gute Go-KI oder eine die funktioniert? Ersteres ist schon schwierig, letzteres wahrscheinlich nicht so sehr :)

pajofego
2006-03-27, 23:58:49
mmmh,

halte ich für sehr schwer zu beantworten. Fast jeder wird seine eigenen Erfahrungen mit in die Bewertung einbringen...genauso wie ich.

Ich persönlich halte die Umsetzung des lokalen Wettermodells des Deutschen Wetterdienstes für sehr anspruchsvoll. Auch wenn die theor. Arbeiten zunächst sehr komplex erscheinen, so ist meiner Meinung das richtige Implementieren solcher numerischen Probleme extrem zeitaufwendig und vor allem in Sachen "Fehlerfinden" pervers! Naja ist so meine Meinung...andere werden dann wohl anderer Meinung sein!

Gruß

pajofego

Ganon
2006-03-28, 00:03:31
Am schwersten? Software ohne Bugs. ;) *gg*

Coda
2006-03-28, 00:04:41
Ich persönlich halte die Umsetzung des lokalen Wettermodells des Deutschen Wetterdienstes für sehr anspruchsvoll. Auch wenn die theor. Arbeiten zunächst sehr komplex erscheinen, so ist meiner Meinung das richtige Implementieren solcher numerischen Probleme extrem zeitaufwendig und vor allem in Sachen "Fehlerfinden" pervers! Naja ist so meine Meinung...andere werden dann wohl anderer Meinung sein!Ja, numerische Probleme sind nicht schön, da bin ich auch schon paarmal durch :(

Neomi
2006-03-28, 00:48:58
Er wollte das ursprüngliche Passwort. Eine Collision hast du bei MD5 schnell zusammen.

Gibt es etwa zu MD5 funktionierende Preimage Attacks? Jetzt mal beschränkt auf solche, die keine Daten mit der gesuchten Ckecksumme als Vorlage brauchen.

Gast
2006-03-28, 03:08:28
Ein Programm, daß die Frage nach dem Leben, dem Universum und dem ganzen Rest beantwortet. (vielleicht noch incl. der konkretisierten Frage selbst)

Coda
2006-03-28, 07:46:17
Das ist doch bekanntermaßen 42 ;)

Gibt es etwa zu MD5 funktionierende Preimage Attacks? Jetzt mal beschränkt auf solche, die keine Daten mit der gesuchten Ckecksumme als Vorlage brauchen.On 18 March 2006, Vlastimil Klima published an algorithm [5] that supposedly can find a collision within one minute on a single notebook computer.

Juerg
2006-03-28, 08:06:33
Am Schwierigsten ist immer das "Hello World" Programm... wenn man beginnt, eine neue Sprache zu lernen (ohne abzutippen ;))

Aqualon
2006-03-28, 08:29:49
Am Schwierigsten ist immer das "Hello World" Programm... wenn man beginnt, eine neue Sprache zu lernen (ohne abzutippen ;))
Wobei das kein Problem des Problems, sondern der Sprache ist ;)

Aqua

HajottV
2006-03-28, 08:59:52
Etwas, was die Business-Abteilung für sinnvoll und total leicht erachtet... da hab ich schon Sachen erlebt, von denen ich beweisen konnte, daß sie gar nicht lösbar sind (Gödel läßt grüßen). Und der Chef (Ex-Progger) hatte noch behauptet, daß er das in 5 Stunden erledigen könnte... :redface:

Wie heißt es so schön? Wenn man aufsteigt, tauscht man Kompetenz gegen Relevanz ein. :rolleyes:

Aber mal vom Lästern abgesehen: Ich halte es für sehr schwierig, aus einem Algorithmus ein Produkt zu machen.

Gruß

Jörg

Stone2001
2006-03-28, 10:55:31
Eine gute Go-KI oder eine die funktioniert? Ersteres ist schon schwierig, letzteres wahrscheinlich nicht so sehr :)
Aha, eine gute Go-KI ist schon etwas anderes! ;) Aktuelle KIs für Go haben in etwa das Niveau von Hobbyspielern. Der Suchraum für Go ist einfach zu groß (der liegt irgendwo in der Größenordnung von 10^100).

Der oben beschriebene Ansatz reicht aus, um eine KI für Backgammon zu schreiben, die nach einigen 1000 Lernzyklen in der Lage ist, jeden zu schlagen. (4 Gewinnt oder Tic Tac Toe fallen in die gleiche Kategorie) Schach ist etwas komplexer. Größeres Spielfeld, mehr Möglichkeiten, hier arbeitet man meistens mit Suchbäumen und speziellen Algorithmen. Diese sind dann in Verbindung mit Eröffnungs und Endspielbibliotheken in der Lage Schachgroßmeister paroli zu bieten (oder gar zu schlagen).

zeckensack
2006-03-28, 11:15:40
Die schwierigste Programmieraufgabe ist "etwas nützliches" ;)
Bonuspunkte wenn du deiner Mutter erklären kannst warum das nützlich ist.
Mir ist bewusst, dass man die Frage nicht wirklich beantworten kann, aber es kann ja jeder mal etwas mit BEGRÜNDUNG hinschreiben.

meine Meinung: Hochsprachen-Compiler: Typprüfungen, Optimierungen,...Geht so. Einerseits ist es schon ein Fass ohne Boden, weil man einen Compiler immer noch etwas besser machen kann, indem man noch mehr Zeit investiert.

Andererseits sind die Grundlagen sehr gut verstanden und dokumentiert. Compiler-Bau ist Standard-Universitätslernstoff. Es gibt Millionen von Büchern die dir mehr oder weniger jeden Schritt erklären bis das Ding zumindest mal funktioniert.

Deswegen als Ergänzung: es ist schwierig etwas zu programmieren das schon viele andere programmiert haben, und es dabei dennoch so viel besser zu machen dass es noch jemanden interessiert.

Fruli-Tier
2006-03-28, 16:01:45
Die schwierigste Programmieraufgabe ist "etwas nützliches" ;)
Bonuspunkte wenn du deiner Mutter erklären kannst warum das nützlich ist.

Deswegen als Ergänzung: es ist schwierig etwas zu programmieren das schon viele andere programmiert haben, und es dabei dennoch so viel besser zu machen dass es noch jemanden interessiert.
Zwei sehr gute Standpunkte!

Ich werfe einfach mal Betriebssystem in die Runde.

5tyle
2006-03-28, 16:42:05
Zwei sehr gute Standpunkte!

Ich werfe einfach mal Betriebssystem in die Runde.Ein simples Betriebssystem zu schreiben ist offenbar gar nicht so schwer. Ein Bekannter von mir hat es geschafft (Assembler usw) innerhalb weniger Tage ein Betriebssystem mit Kommandozeile zum laufen zu bringen. Natürlich nichts anspruchsvolles :)

Fruli-Tier
2006-03-28, 16:55:31
Ja guuut...
Wir leben aber 2006 und da ist ne Kommandozeile nur noch für Linux Freaks akzeptabel ;P
Also schon soetwas, was man als Windows, oder Linux mit KDE/Gnome kennt.

Coda
2006-03-28, 18:43:32
Das ist eine grafische Oberfläche und kein Betriebssystem.

Fruli-Tier
2006-03-28, 19:05:14
Bahhh, versuchts doch mal mit denken. Dass ich nicht nur auf die GUI anspiele, sollte doch wohl klar sein. Ein modernen OS habe ich gemeint...

DocEW
2006-03-28, 19:24:00
Was ich besonders bemerkenswert finde:
Anscheinend ist es sehr schwer ein funktionierendes WYSIWYG-Textverarbeitungsprogramm zu schreiben. Muß aber zugeben, daß ich mich noch nicht mit Open Office beschäftigt habe.

Ansonsten würden mir noch so Sachen einfallen, wie die Software, die bei der Deutschen Bahn den ganzen Verkehr regelt. Oder irgendwas mit tierisch viel parallelen Sachen (mir fällt gerade nix ein).

Coda
2006-03-28, 19:29:45
Bahhh, versuchts doch mal mit denken. Dass ich nicht nur auf die GUI anspiele, sollte doch wohl klar sein. Ein modernen OS habe ich gemeint...Naja das ist doch bloß Userspace. Das Kernelzeugs ist viel schlimmer auch wenns nicht so dolle aussieht mit nur Konsole :ugly:

Fruli-Tier
2006-03-28, 19:32:21
Zu einem modernem OS, gehört auch eine moderne Benutzerführung, zumindest sehe ich das so. Aber klar, die Kernelspielereien machen die größte Arbeit, sind aber nicht alles.

Trap
2006-03-28, 20:06:20
Es kommt drauf an wozu man das OS schreibt. Wenn man Endnutzer haben möchte braucht man eine GUI. Für Server nicht und für Forschung im Bereich OS-Design erst recht nicht.

Stone2001
2006-03-28, 20:42:43
Geht so. Einerseits ist es schon ein Fass ohne Boden, weil man einen Compiler immer noch etwas besser machen kann, indem man noch mehr Zeit investiert.

Yeah, Full-Employment-Theorem for Compilerwriters! :D

BTW: Wenn man unseren OS-Leuten glaubt, dann passt ein modernes OS auf eine 3.5" Diskette. :)

Gast
2006-03-28, 21:12:51
eine frau :D

Marscel
2006-03-28, 21:59:25
BTW: Wenn man unseren OS-Leuten glaubt, dann passt ein modernes OS auf eine 3.5" Diskette. :)

Schon einmal MenuetOS probiert? Das passt wirklich auf eine Diskette, bietet GUI und eine Menge kleiner Programme, ich hab das einmal ausprobiert, das ist wirklich nicht übel:

http://www.menuetos.org/download.html

Stone2001
2006-03-28, 22:28:54
Schon einmal MenuetOS probiert? Das passt wirklich auf eine Diskette, bietet GUI und eine Menge kleiner Programme, ich hab das einmal ausprobiert, das ist wirklich nicht übel:

http://www.menuetos.org/download.html
Nee, hab ich nicht. Ich dachte mehr an: www.l4ka.org :)

UliBär
2006-03-28, 22:59:38
Ein Programm, daß die Frage nach dem Leben, dem Universum und dem ganzen Rest beantwortet.#include <stdio.h>

int Sinn_des_Lebens()
{
return 42;
}

int main(int argc, char *argv[])
{
int antwort = Sinn_des_Lebens();
printf("Die Antwort auf die Frage nach dem Leben,"
+ " dem Universum und dem ganzen Rest lautet: %d\n", antwort);
return antwort;
}Das war doch easy ;D

Gast
2006-03-28, 23:29:45
java in visualstudio

Gast
2006-03-29, 01:45:46
visual studio in java

Robbson
2006-03-29, 09:10:44
Entwicklung eines PS2 Emulators, der mit möglichst vielen kommerziellen Games kompatibel ist. Auf den bisherigen Projekten laufen ja fast ausschließlich kleine Demos. Jedenfalls ist das Disassemblieren und anschließende Emulieren von Hardware ohne verfügbare technische Dokumente ein Höllenjob. :|

Hingegen gibt es zu den meisten hier genannten Sachen einschlägige Literatur, sodaß man früher oder später auch diese Hürde nehmen könnte, sofern einem nicht zuvor der Schädel platzt oder die Motivation flöten geht. :hammer:

Robbson.

ethrandil
2006-03-29, 13:41:39
Ein Echtzeitsimulator des gesamten Universiums (incl. mehrerer Universen falls es die gibt).

Am besten sogar schneller :ugly: (jaja, paradox ;) )

- eth

HajottV
2006-03-30, 03:50:55
es ist schwierig etwas zu programmieren das schon viele andere programmiert haben, und es dabei dennoch so viel besser zu machen dass es noch jemanden interessiert.

Das muß nicht so sein. Gerade im Bereich Information-Retrieval, Text-Classification, Datenstrukturen für Suchmaschinen etc. finde ich es erstaunlich, daß man selber noch Dinge findet, die deutliche Verbesserungen gegenüber publizierten Verfahren bringen. Und das, obwohl da wie blöde geforscht wird.

Nachteil bei der Sache ist allerdings, daß man da privat einiges an Zeit investieren muß, um am Stand der Forschung zu sein... und eine manchmal genervte Freundin: Warst Du schon wieder Nachts wach und hast was ausprobiert? :redface:

Gruß

Jörg

Hydrokugal
2006-03-30, 08:02:13
Das schwerste zu Programmieren, ist ein Programm zum Programmieren ;)

Gast
2006-03-30, 20:36:02
Programmieren ein Programm, das den Programmierer überflüssig macht:
Du sagst dem Programm, was dein Problem ist, und es löst das Problem.

wranger_nicht_eingeloggt
2006-04-01, 18:27:48
Moin,

also mir würde da noch die intelligente Sprach- und Bildanalyse einfallen.

RMC
2006-04-02, 00:51:43
Algorithmen zur Erkennung von Gegenständen in einem Bild oder Video, damit dieses mit Informationen automatisch beschrieben werden. Also, das Foto soll somit quasi selbst erkennen was auf ihm dargestellt wird ;) Ich glaub net dass das bisher möglich war. Aber es geht ja schon seit MPEG7 immer mehr Richtung Metainformation und Beschreibung von Inhalten etc.

The Cell
2006-04-02, 16:52:23
Was ist am schwierigsten zu programmieren

Sicherer und guter Code.

QFT

wry
2006-04-02, 17:15:19
Ein Programm, das dem menschlichen Gehirn in all seinen Funktionen ebenbürtig ist oder es gar in den Schatten stellt. :)

Coda
2006-04-02, 17:29:07
Sicherer und guter Code.
Das war bisher der beste Vorschlag imho :)

Ein Programm, das dem menschlichen Gehirn in all seinen Funktionen ebenbürtig ist oder es gar in den Schatten stellt. :)
Das dürfte im Moment erst einmal ein Hardwareproblem sein ;)

Controller Khan
2006-04-02, 17:46:12
dokumentierter, sauberer, wartbarer Code.

HajottV
2006-04-03, 07:25:33
(a) dokumentierter, (b) sauberer, (c) wartbarer Code.

Nee, (a) + (b) sind im Wesentlichen eine Sache des Disziplin... irgendwann geht das aber ins Blut über, dann kommt einem undokumentierter Code irgendwie unvollständig vor. Das hilft dann auch bei (c), wobei es hier zugegebenermaßen schon schwieriger wird.

Wobei man die Sachen nicht so trennen kann. Meiner Erfahrung nach ist Code, der scheiße aussieht, es in der Regel auch... und umgekehrt.

Jörg

eXodia
2006-04-03, 14:17:05
Ein Programm, das dem menschlichen Gehirn in all seinen Funktionen ebenbürtig ist oder es gar in den Schatten stellt. :)

Hm, ist das nicht ein Paradoxon? "Wir" müssen es doch programmieren, d.h. wir können ihm keine Algorithmen beibringen die es schlauer machen als uns, da wir ja dann der limitierende Faktor wären.

Regards

MadMan2k
2006-04-03, 14:51:49
Hm, ist das nicht ein Paradoxon? "Wir" müssen es doch programmieren, d.h. wir können ihm keine Algorithmen beibringen die es schlauer machen als uns, da wir ja dann der limitierende Faktor wären.

Regards
so, kompliziert sind wir nicht:
http://de.wikipedia.org/wiki/K%C3%BCnstliches_neuronales_Netz

Stone2001
2006-04-03, 14:54:36
so, kompliziert sind wir nicht:
http://de.wikipedia.org/wiki/K%C3%BCnstliches_neuronales_Netz
Dann ist alles nur eine Frage des Lernverfahrens. ;) Naja, aber ein neuronales Netz mit 10^10 Neuronen und einem mittlerem Verzeigungsgrad von 10^5 muß erstmal gebaut oder modelliert werden.

Coda
2006-04-03, 15:12:19
Das meinte ich mit Hardwareproblem :D

Monger
2006-04-03, 15:41:16
Das schwerste zu Programmieren, ist ein Programm zum Programmieren ;)

Genau so sehe ich das auch. Wir haben uns immer noch nicht wahnsinnig weit weg von der Maschinensprache bewegt. Auch eine heutige Hochsprache ist noch immer ziemlich klobig...

Ich hab mal an einem kleinen Programm in Java gearbeitet, dass einer Tischtennismannschaft bei ihrer Turnierordnung helfen sollte.

Für einen Menschen waren die Regeln halbwegs nachvollziehbar, im realen Spielablauf wusste jeder was er zu tun hatte. Es dauerte halt nur ziemlich lange. Diese Regeln aber dem Computer beizubringen, war nicht trivial.


Soweit ich weiß, sind diese Tools die Klassengerüste aufgrund von UML Diagrammen generieren sollen immer noch nicht so prickelnd. An irgendeiner Stelle muss man doch immer noch kräftig von Hand nachmodellieren.

Ich bin gespannt was der nächste Schritt nach den objektorientierten Sprachen sein wird, aber offensichtlich hat ja keiner davon derzeit so eine rechte Vorstellung.

#44
2006-04-03, 16:18:07
der faktor der die möglichkeiten eines programmes limitiert ist immer der programmierer... bzw. sein wissen in der betreffenden materie (vorrausgesetzt er beherrscht die sprache die er nutzt perfekt) alles andere ist zeit/kostenaufwand

dinge wie ein "universums-simulator" sind da eben nicht möglich... man kennt ja noch nicht mal den winzigssten teil davon...

mein tipp: ein programm das anhand von "gesprächsdaten" einen rückschluss auf die gedanken des "gesprächspartners" zieht

EDIT: hmm ist eigentlich blödsinn... das kann man ja nicht mal unbedingt nem menschen beibringen :rolleyes: ich weiss... man sollte schon die grundregeln der programmierung bedenken ^^

*neuen tipp ausdenk*

*gG* diese funktion: myLife.doSomeStupidAndMeaninglessThings() ;)

wry
2006-04-03, 19:23:08
Zitat von wry
Ein Programm, das dem menschlichen Gehirn in all seinen Funktionen ebenbürtig ist oder es gar in den Schatten stellt. :)

Hm, ist das nicht ein Paradoxon? "Wir" müssen es doch programmieren, d.h. wir können ihm keine Algorithmen beibringen die es schlauer machen als uns, da wir ja dann der limitierende Faktor wären.

Regards

Naja irgendwie hast du schon recht, aber man könnte das künstlichen Gehirn wahrscheinlich leichter mit anderen computergestüzten Funktionen erweitern, so dass es dann z.B. so schnell rechnen kann wie ein Computer.