Ubuntu Suomen keskustelualueet

Muut alueet => Yleistä keskustelua => Aiheen aloitti: Mistofelees - 04.04.20 - klo:11.35

Otsikko: Ohjelmointikielistä
Kirjoitti: Mistofelees - 04.04.20 - klo:11.35
Seuraava, joka kehittää taas uuden ohjelmointikielen voisi tehdä mukaan yhden fiitserin

Kun yhteenkuuluvat rakenteet paketoidaan sulkumerkkien sisään, voisi näihin sulkumerkkeihin lisätä myös tunnisteen. Vaikkapa vain numeron tai merkkisarjan, joka noudattaisi muuttujien nimeämiskäytäntöjä.
Fiksu IDE pystyisi ylläpitämään numerointia käsin koskematta ja ilmoittamaan virheistä lennossa.

Ohjelman kasvaessa ja sisäkkäisten rakenteiden määrän kasvaessa on vaikea enää tunnistaa, mikä loppusulku liittyy mihinkin alkusulkuun.

Ehdotukseni esimerkin muodossa:

void setup() asetukset{
       WiFi.begin()
}asetukset
for( ; ; ) 1{
    for( ; ; ) 2a{ plapla }2a
    for ( ; ; ) 3{
            plaplapla
    }3
}1

Joku jo ehdottikin, että sulut merkittäisiin väreillä. No ei kiitos näin värisokeiden puolesta. Eikä kukaan muutenkaan erota kymmeniä värejä toisistaan. Ei varsinkaan mv-laserilla paperille tulostettuna.
Joku hehkutti, että monet IDE:t korostavat loppusulun, kun vie kursorin alkusulun päälle. Ei ole tainnut ko henkilö koskaan kirjoittaa yhtä kuvaruutua pidempää ohjelmaa.
Sulkumerkkien korvaaminen sisennyksillä on suoraan p*stä. Se toimii kyllä, jos editoit koodia koko ajan samalla editorilla samassa koneessa, mutta tuo ongelmia koneelta toisella vaihtaessa.
Otsikko: Vs: Ohjelmointikielistä
Kirjoitti: Tomin - 04.04.20 - klo:14.38
Eli jonkinlainen pakollinen kommentointi? Tuon varmistaminen onnistuisi varmasti jollain staattisella analyysillakin. Tämähän ei suuresti eroa tuosta omasta esimerkistäsi:
Koodia: [Valitse]
void setup() /* asetukset */ {
       WiFi.begin()
} /* asetukset */
for( ; ; ) /* 1 */ {
    for( ; ; ) /* 2a */ { plapla } /* 2a */
    for ( ; ; ) /* 3 */ {
            plaplapla
    } /* 3 */
} /* 1 */

Tai vähän kevennettynä:
Koodia: [Valitse]
void setup() { // asetukset
       WiFi.begin()
} // asetukset
for( ; ; ) { // 3
    for( ; ; ) { plapla } // 2a
    for ( ; ; ) { // 3
            plaplapla
    } // 3
} // 1

Muokkaus: lisätty pari unohtunutta välilyöntiä tyylin vuoksi
Otsikko: Vs: Ohjelmointikielistä
Kirjoitti: SuperOscar - 04.04.20 - klo:15.07
Eikös Adassa vähän tuollainen systeemi ollutkin? Tosin se ei käyttänyt sulkuja vaan Pascalin tapaan avainsanoja begin ja end, mutta niiden perään piti (tai sai, en muista) panna toisen sanan, jolla osoitti, minkä loppu on kyseessä (esim. begin loopend loop).

Rehellisesti pidän itse enemmän Pythonista, jossa pakollinen sisennys osoittaa tämän aivan riittävän selvästi ilman tyhmiä sulkujakin.
Otsikko: Vs: Ohjelmointikielistä
Kirjoitti: JaniAlander - 05.04.20 - klo:16.09
Pythonin sisennys on ihan jees niin kauan kuin editori konsistentisti tuottaa halutun sisennyksen. Sitten kun ei tuota alkaa käämit kärytä.
Otsikko: Vs: Ohjelmointikielistä
Kirjoitti: nm - 05.04.20 - klo:19.09
Pythonin sisennys on ihan jees niin kauan kuin editori konsistentisti tuottaa halutun sisennyksen. Sitten kun ei tuota alkaa käämit kärytä.

Eikös sama päde kaikkiin ohjelmointikieliin? Täytyyhän koodi joka tapauksessa sisentää yhdenmukaisesti, jotta siitä saa jotain selvää seuraavallakin lukukerralla.  :)
Otsikko: Vs: Ohjelmointikielistä
Kirjoitti: JaniAlander - 06.04.20 - klo:04.52
Mulla oli muutaman editorin kanssa vääntöä, kun ei se sisennyksen tuotantotapa pysynyt yhtenäisenä. Tuotti kivasti neljää välilyöntiä tai yhtä tabbia, ja kääntäjähän ei moisesta pidä. Siinä sitä sitten saa etsiskellä jollei pistä erikoismerkit päälle näkymää, että missäs kaikkialla mahtaa olla ryttyileviä sisennyksiä. Sitten päädyin käyttämään IDLE:n editoria.