Forum: PC-Programmierung Programm welches Programmier Befehle vorschlägt?


von Bernd (Gast)


Lesenswert?

Ich weiß nicht, ob andere das Problem auch haben, aber ich vergesse 
manchmal den Anfang von nicht oft benutzten Befehlen beim Programmieren.

Ich wollte deshalb fragen, ob jemand eine Art Hilfsprogramm kennt das 
einem durch Kategorieauswahl Befehle auflistet?

Beispielsweise ist in javascript Math.round() etwas was ich selten 
benutze, und wo ich dann meistens mit kleinem m anfange (wenn ich den 
Anfang überhaupt weiß), und dann gibt mir die IDE (Netbeans) keine 
Vorschläge aus (klar, es fängt ja auch mit großem M an).

Also googeln, Kopf -> Tisch, und weitermachen.


Ich kann mir auch cheatsheets ausdrucken, aber beim Laptop arbeiten ist 
das meist etwas umständlich.

Oder kann mir jemand verraten, wie Profi-Programmierer das machen?

von Do (Gast)


Lesenswert?

Visual Studio macht das. Allgemein nennt sich das 
Syntax-Vervollständigung oder Code Completion.

von Bernd (Gast)


Lesenswert?

Ja, netbeans macht das auch. Man muss halt den richtigen Anfang finden 
oder sich überhaupt erstmal an den Anfang eines Wortes erinnern.

Keine Ahnung warum mir das so schwer fällt, kann mir aber auch Namen 
extrem schlecht merken.

Wenn ich mal den Anfang hab, geht es, aber genau das macht glaub ich 
keine IDE, dass sie eine kategorische Auswahl ermöglicht.

von Christian R. (supachris)


Lesenswert?

Das kann ja dann mit eigenen Methoden, Klassen usw auch ausarten bzw 
unmöglich werden eine Kategorie zu finden.
Wir nutzen den Resharper das geht schon richtig gut. Aber selbst da 
sollte man schon in etwa wissen was man will...

von c-hater (Gast)


Lesenswert?

Bernd schrieb:

> Keine Ahnung warum mir das so schwer fällt, kann mir aber auch Namen
> extrem schlecht merken.

Hattu Kopf wie Sieb, muttu aufschreiben!

von Jim M. (turboj)


Lesenswert?

Bernd schrieb:
> und dann gibt mir die IDE (Netbeans) keine
> Vorschläge aus (klar, es fängt ja auch mit großem M an).

Sollte man unter "Code Completion" einstellen können.

Da ist irgendwo auch ein Haken für "Groß- und Kleinschreibung".

von georg (Gast)


Lesenswert?

Bernd schrieb:
> Wenn ich mal den Anfang hab, geht es, aber genau das macht glaub ich
> keine IDE, dass sie eine kategorische Auswahl ermöglicht.

Aber ja doch: bei Borland z.B. gibt es in der Hilfe eine "Wurzel" mit 
"Prozeduren und Funktionen" oder so ähnlich, da findet man dann 
Druckfunktionen, Bildschirmfunktionen, Threadverwaltung usw. usw. und 
von da hangelt man sich durch bis zu dem was man gerade braucht, wie 
z.B. Senden über Comport.

Georg

von georg (Gast)


Lesenswert?

Bernd schrieb:
> Beispielsweise ist in javascript Math.round() etwas was ich selten
> benutze, und wo ich dann meistens mit kleinem m anfange (wenn ich den
> Anfang überhaupt weiß)

Da rufe ich eben die Hilfe-Seite für die Math-Library auf, das steht 
i.A. auf der ersten Seite eine Linkliste mit den wichtigsten Kategorien 
wie Trigonometrie, da findet sich Sinus, Cosinus usw. wo ist denn da das 
Problem?

Georg

von Entwiggler (Gast)


Lesenswert?

Suchmaschinen, Foren und Doku-Seiten zu verwendeten libs gehört zum 
Programmieralltag.

Dein einziges Problem an der Stelle ist wohl, dass du selbst damit 
unzufrieden bist.

von A. S. (Gast)


Lesenswert?

Bernd schrieb:
> Oder kann mir jemand verraten, wie Profi-Programmierer das machen?

2 oder mehr Bildschirme (ggf virtuell) und eine Suchmaschine, z.b. 
Google.

von Profiprogrammierer (Gast)


Lesenswert?

Bernd schrieb:
> Oder kann mir jemand verraten, wie Profi-Programmierer das machen?

Naja, die wissen das halt. Die Methoden der Standard-Klassenbibliothek 
muss man halt kennen. Wie soll man sonst auch programmieren anstatt 
probieren?

von Thomas M. (Firma: https://img.favpng.com/23/21/3) (thomasmopunkt)


Lesenswert?

Visual Studio, Delphi, Lazarus Pascal können das perfekt

von Thomas M. (Firma: https://img.favpng.com/23/21/3) (thomasmopunkt)


Angehängte Dateien:

Lesenswert?

sebst wenn Du gar nich eingibst, zeigt er Dir schon eine Reihe von 
Möglichkeiten bei Lazarus, einfach STRG + Leertaste drücken

von Oliver S. (oliverso)


Lesenswert?

Thomas M. schrieb:
> Visual Studio, Delphi, Lazarus Pascal können das perfekt

Keine IDE kann das, was der TO will: Etwas vorschlagen, von dem er gar 
nicht weiß, wie es heißt.

Oliver

von test (Gast)


Lesenswert?

Abgesehen davon, wenn man etwas benutzt was man gar nicht kennt sollte 
man eh die Beschreibung lesen (Abhängigkeiten, Einschränkungen, 
Verhalten im Fehlerfall usw.).
Einfach blind irgendwas nutzen was sich vom Nen her irgendwie richtig 
anhört ist nicht schön.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Oliver S. schrieb:
> Thomas M. schrieb:
>> Visual Studio, Delphi, Lazarus Pascal können das perfekt
>
> Keine IDE kann das, was der TO will: Etwas vorschlagen, von dem er gar
> nicht weiß, wie es heißt.
>
> Oliver

Aber zumindest VSCode kann etwas vorschlagen von dem man nur so ungefähr 
weiß wie es heißt. Das ist extrem praktisch.

Matthias

von Yalu X. (yalu) (Moderator)


Lesenswert?

Oliver S. schrieb:
> Keine IDE kann das, was der TO will: Etwas vorschlagen, von dem er gar
> nicht weiß, wie es heißt.

Doch, gibt es, nur nicht für jede Programmiersprache.

So gibt es bspw. für Haskell das Tool Hoogle, das Funktionen nicht nur
anhand ihres Namens (oder Teilen davon), sondern auch anhand ihres Typs
(Signatur) sucht.

Der Typ einer Funktion besteht dabei aus den Argumenttypen (entweder
konkret oder als Typvariable), dem Ergebnistyp und optional einem
Kontext als Nebenbedingung für die verwendeten Typvariablen.

Das Tool sucht in über 2300 Bibliotheken mit insgesamt zigtausenden
Funktionen. Dabei werden auch Funktionen gefunden, deren Typ etwas von
der Vorgabe abweicht (bspw. andere Reihenfolge der Argumente, leichte
Abweichungen der Argumenttypen oder des Ergebnistyps, fehlender Kontext
usw.). Man kann es online oder lokal benutzen, außerdem gibt es Plugins
für IDEs (bspw. Eclipse) oder Texteditoren (bspw. Emacs oder Vim).

Da in Funktionalsprachen wie Haskell der Typ einer Funktion recht viel
über deren Zweck aussagt, funktioniert diese Suche trotz des riesigen
Suchraums erstaunlich gut.

Beispiele:

Ich suche die logische Nicht-Funktion. Das einzige Argument und das
Ergebnis sind beide vom Typ Bool. Die Funktion ist also vom Typ

  Bool -> Bool

Die ersten beiden Treffer sind not und das dazu synonyme ¬.

Oder ich suche die Funktion, die die Länge einer Liste liefert. Da die
Länge für Listen mit beliebigem Elementtyp definiert ist, lasse ich
diesen variabel und benutze dafür einen Variablennamen, bspw. a. Der
Ergebnistyp ist logischerweise ein Integer-Wert:

  [a] -> Int

Hoogles erster Treffer ist length.

Etwas komplizierter: Ich suche eine Funktion, die diejenigen Elemente
einer Liste zählt, die eine gegebene Bedingung erfüllen. Die Liste ist
dabei wieder vom Typ [a], die Bedingung ist eine Funktion vom Typ
a->Bool:

  [a] -> (a -> Bool) -> Int

Die ersten beiden Treffer sind findIndexJust und count, die aber vom
Typ (a->Bool)->[a]->Int sind, d.h. ich muss die beiden Argumente
vertauschen. Der Name count legt nahe, dass von den beiden Treffern
dieses die gesuchte Funktion ist.

Wenn ich eine Sortierfunktion mit

  [a] -> [a]

suche, werden erst einmal jede Menge exakter Treffer angezeigt, aber
nicht das, wonach ich suche. Das liegt daran, dass die Sortierfunktion
nicht auf beliebige Listen anwendbar ist, sondern nur auf solche, für
deren Elemente Ordnungsrelationen (<, > usw.) definiert sind, d.h. a
muss der Typklasse Ord angehören. Eine erneute Suche mit einem
zusätzlichen Kontext

  Ord a => [a] -> [a]

liefert die gesuchte Funktion sort.


Hier ist die Online-Version des Tools, falls jemand damit herumspielen
möchte:

  https://hoogle.haskell.org/

von Oliver S. (oliverso)


Lesenswert?

Na ja, Haskell...

Wobei, die Syntax für die Suxhe kennt der TO ja schonmal ;)

Bernd schrieb:
> Kopf -> Tisch

Oliver

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.