Mitkä ovat eri koodauskielet, ja mikä ero on niiden välillä?


Vastaus 1:

Eri tietokonekielet eivät ole kuin erilaisia ​​luonnollisia kieliä. Luonnollisilla kielillä on enemmän tai vähemmän sama tehtävä: Ne on tarkoitettu ihmisten väliseen kommunikointiin, heidän arjen sosiaalisen elämän järjestämiseen, tunteiden, tarpeiden ilmaisemiseen ja asioiden tarjoamiseen. Riidellä.

Tietokonekielet puolestaan ​​ovat enemmän kuin erilaisia ​​työkaluja. Niillä on erilaisia ​​ominaisuuksia, jotkut on tarkoitettu tietyille laitteistoille, toiset tietyille käyttöjärjestelmille, toiset tietyille tehtäville.

HTML on verkkosivujen kuvaaminen. TeX on tarkoitettu tieteellisten asiakirjojen kuvaamiseen, Postscript on tulostettujen sivujen kuvaamiseen.

C on tarkoitettu mikroprosessorien ohjelmointiin melko alhaisella tasolla, kun joudut hallitsemaan muistin käsittelyä itse. Java on tarkoitettu suurten sovellusten ohjelmointiin, kun et halua olla vaivautunut niin matalan tason juttuihin. Javascript on tarkoitettu käytettäväksi web-sivuston sisällön tarjoamiseksi. Python on tarkoitettu monimutkaisten algoritmien ilmaisemiseen, ja sitä käytetään sen vuoksi laajalti koneoppimisessa. Shell-scripting on tarkoitettu käyttöjärjestelmään liittyvien asioiden, kuten tiedostojen kopioimisen ja levyjen puhdistamisen, automatisointiin.

Erityisiä ohjelmointikieliä on monilla aloilla. Jokaisella heistä on erityinen osaamisalue, mutta se on toisaalta rajoitettu juuri tälle alalle. Tavaroiden saavuttamiseksi kieltä ei ole tarkoitettu usein pidetään "hakkerointi".

Kaikki tämä on ihmisen ja tietokoneen välistä viestintää.

Toinen näkökohta, joka tuli esiin lähinnä viime vuosikymmeninä, on ihmisen ja ihmisen välinen viestintä. Kun aiemmin katsottiin tarpeeksi kirjoittaa ohjelma tietokoneen ymmärtämiseksi ja tekemiseksi oikein, nyt tuli entistä merkityksellisempää sen varmistamiseksi, että kehittäjä, jonka on tarkoitus ylläpitää olemassa olevaa ohjelmaa, pystyy ymmärtämään ohjelman ja ajatukset sen takana. Useat nuoremmat kielet (esim. Python, C #, Go) tai vanhempien kielten uudemmat versiot (C ++) suunniteltiin tätä näkökohtaa ajatellen.

Useita kieliä löytyy melkein kaikista kentistä (C / C ++, Java), mutta usein ne ovat huono valinta. Monet tietoturvavuodot johtuvat esimerkiksi C: n huonosti ohjelmoidusta muistinhallinnasta. Muilla kielillä hyväksyttävää virhettä ei olisi voitu tehdä ensisijaisesti, joten voitaisiin väittää, että (ehkä) niitä olisi pitänyt käyttää sen sijaan. Mutta C, toisaalta, on sulkea laitteisto, että se on suurin piirtein nopein ratkaisu, jonka voi saada. Java puolestaan ​​on monissa tapauksissa valittu, koska sitä käytetään nyt niin laajasti, tuetaan hyvin jne., Mutta osoittautuu sitten liian hitaaksi, liian arvaamattomaksi (esim. GC: n, JIT: n jne. Vuoksi). ja liian muistinälkäinen sovellukselle, joka käyttää todella monia resursseja.

Jos etsit opittavaa kieltä, kysy ensin itseltäsi: ”Mitä haluan saavuttaa?”

Mitä haluat koodata? Signaalinkäsittely? Pelit? Palvelimia? Verkon käyttöliittymät? Graafisia? Mobiilisovellukset? Pesukoneet? Automotive? Suuri data? Pilvilaskenta? Käyttöjärjestelmät? Missä ympäristössä ohjelmoin? Windows? Linux? Mobile? Embedded? Onko keskittyminen enemmän kehitysnopeuteen vai toteuttamisnopeuteen? Kuinka merkityksellinen on ylläpidettävyys?

Ja sitten valitse kieli.


Vastaus 2:

Ohjelmointikielten taksonomia on erittäin monimutkainen, aivan liian iso aihe, jotta voitaisiin tehdä yhteenveto Quorasta. Mainitsen kuitenkin pinnallisesti vain muutamia asioita ...

Ohjelmointikielet voidaan luokitella karkeasti ohjelmointiparadigman, kuten prosessointiohjelmoinnin, olio-ohjelmoinnin, toiminnallisen ohjelmoinnin ja loogisen ohjelmoinnin avulla. Nämä paradigmat perustuvat erilaisiin periaatteisiin, jotka koskevat ohjelmointiratkaisujen mallintaa ja organisointia. Tästä on kirjoitettu kirjoja, joten en halua laajentaa tätä täällä.

Ohjelmointikielet voidaan luokitella myös sen mukaan, miten muuttujat tyypitetään, onko ne dynaamisesti, vai staattisesti vai valinnaisesti, tai niin edelleen. Tietojen kirjoittamisella tarkoitetaan, millaisia ​​data-arvoja muuttuja (tai säilö) voi pitää ohjelman suorituksen aikana. Dynaaminen kirjoittaminen antaa säilölle mahdollisuuden pitää erityyppisiä arvoja milloin tahansa; staattinen kirjoittaminen ilmoittaa, että säilö voi pitää vain tietyn tyyppisiä arvoja.

Ohjelmointikielten ei tarvitse edes olla tekstipohjaisia. Scratch on esimerkki visuaalisesta ohjelmointikielestä, joka esitetään käyttäjälle graafisessa vedä ja pudota -muodossa.

Joskus ohjelmointikielen toteutus konetasolla voi olla kielen olennainen laatu. Esimerkkejä tästä ovat Java ja Smalltalk, jotka kääntyvät tavukoodiin, joka suoritetaan kieli virtuaalikoneessa. Tätä verrataan kieliin, kuten C ja Go, jotka kääntävät alkuperäiseen koodiin. Vaikka nämä kielet voidaan toteuttaa muilla tavoilla, niitä ei läheskään koskaan tehdä.