[2016:] Dodano poglavje 2. Okolja ter specifike Windows okolja s slikami.
[2018:] Za dovršenost, dodane še slike iz OSX in Linux okolja. Le te so si velikokrat podobne, zato je pogosto dodana le ena slika, ki ponazarja izvedbo na obeh sistemih. Razmišljala sem tudi, da bi seznam spodnjih jezikov malo osvežila še z Go, Rust, Haskell, Lua ipd., vendar sem zaenkrat le premešala vrstni red, saj so tukaj omenjeni jeziki še vedno dokaj aktualni TIOBE Index. Sicer pa je jezikov v uporabi že toliko, da se ta seznam ne bi nikoli zaključil ali bil najbolj optimalen, kar tudi ni namen tega prispevka. Namen tega prispevka je le, mogoče koga spodbuditi k eksperimentiranju v tej smeri in mu nekoliko olajšati začetek.
[2019:] Dodala povezavo na brezplačni PHP tečaj v slovenščini php-tecaj.si. Hvala Anže, Marko in kompanija za to veliko delo \m/
1. Uvod
V letošnjem letu smo imeli predavanje na temo adolescenca. Med drugim je bila omenjena tudi procesorska moč v najstniških letih. Natančneje naj bi bili možgani sposobni predelati največ podatkov v najkrajšem času pri starosti 21 let. V enem razredu sem komentirala, naj to izkoristijo in naj ne zapravljajo te moči zgolj za igrice, naj to izkoristijo na primer za učenje programiranja. Pa me je dijakinja vprašala kje in kako se to naučijo?
Točno to sem se spraševala tudi sama, ko so me prepričevali naj začnem programirat, češ da bo meni zagotovo šlo dobro od rok.
In res v našem šolskem sistemu tega v večini programov ni, čeprav vsi menimo, da bi bilo to potrebno. Poleg jezikov, ki se jih dijaki učijo, bi bilo potrebno znanje vsaj enega programskega jezika, da znajo vsaj približno prebrati kodo in vedo kaj dela, saj se s programiranjem prej ali slej srečajo. Naši dijaki pa se v glavnem učijo Microsoft Office. Naprej ne bom argumentirala, saj je bilo že večkrat argumentirano. Za uvod predlagam ogled kratkega filma, ki izpostavi večino dejstev: Code Stars. Da se vrnem na vprašanje. Kje te naučijo programirat ne vem. Verjetno v šolah z besedo računalništvo ali informatika v nazivu, morda kakih tečajih, sicer se je pa potrebno naučiti sam. Kar je seveda samumevno: učiti se, sebe. Ostali lahko le pomagajo.
Tukaj lahko pomagam s skromnimi nasveti iz lastnih laičnih iskušenj. Sama nisem šolana v tej smeri, niti nimam opravljenega nobenega izpita iz računalništva, niti ne poznam nobenega resničnega človeka, ki bi mi lahko pomagal. Tako sem si pomagala sama kot si lahko vi, le s spletom in dobrimi virtualnimi ljudmi.:) Zato nisem kvalificiran človek, da sploh to pišem, ampak ker velja, da v demokraciji lahko vsakdo piše o bilo čem, zakaj pa ne?:P ali drugače /*In democracy there is no such thing as stupidity:D*/
[Pomembno:] Za programiranje ni potrebna nobena višja inteligenca. Lahko se ga nauči vsak človek tako kot branja in pisanja. Ne verjetmite ljudem, ki govorijo da je to le za ene posvečene voodoo ljudi!!! Vse kar je potrebno je volja in čas. Prav pride tudi določena mera matematičnega znanja, kar pa ni predpogoj. Poznam programerje, ki jim že Vietovi pravili delajo težave. Seveda pa programiranja ne gre jemati preveč z lahkoto in večina nas nikoli ne bo dosegla stopnje Dennisa M. Ritchija, Linusa Torvaldsa, Petra Ferrija ipd., vendar menim, da osnovno pismenost lahko dosežemo s trudom vsi. Na temo nauči se programiranja v 10 dneh je napisanih kar nekaj knjig, kot protiutež pa vam v branje predlagam pisanje Petra Norviga Teach Yourself Programming in Ten Years in One does not simply learn to code. Skratka, kot vedno, če se želimo nekaj novega naučiti, moramo vložiti čas in trud. Saj veste, nihče se zjutraj ne zbudi in kar zna japonsko, na žalost.
Uvod v programiranje za netehnične ljudi: Eat the World
2. Okolja
Tri leta so minila od kar sem pisala ta prispevek. V tem času sem svojo opremo nekoliko posodobila, tako da imam sedaj lahko nameščene tudi 64 bitne sisteme in VM-je. Prispevek, ki je večinoma namenjen Linux ukazni vrstici, bom zato poskušala dopolniti še z Windows in OSX različico. Ob tem se bom držala principa KISS (Keep it simple stupid). Torej:
Preden začnemo, si moramo postaviti okolje, ki nam bo omogočalo spodnje primere preizkusiti.
2.1. Linux
Večina stvari je že prednameščenih, tako da naše okolje že imamo. Potrebno je le namestiti nekatere željene jezike. Nameščeni paketi so odvisni od distribucije. Distribucija, ki ima nameščeno vse potrebno je Kali Linux. V kolikor niste še videli drugega sistema razen Windows, vam priporočam, da si Kali sliko namestite v VirtualBox, VMWare Player, Qemu, ali kakšno podobno virtualno rešitev. Tukaj omenjam le brezplačne različice. V kolikor vam sistem tega ne dopušča, Kali potrebuje najmanj 1GB rama, si naredite zagonski USB (Navodila za telebane, Uradna navodila). V BIOSU izberite USB kot prvo opcijo za zaganjanje sistema. Ko se sistem zažene, si naredite mapo koda, kot prikazano na Sliki 1.
Na Linux sistemih se ne bomo ukvarjali z Microsoftovimi posebnostmi, kot sta VB in C#.
Če bi si radi le malo ogledali kako kakšna Linux distribucija zgleda, predlagam ogled Ubuntuja, ki je baziran na Debianu, tako kot zgoraj omenjeni Kali Linux.
2.2. OS X
Tudi tukaj imamo naše programersko okolje že nameščeno. Potrebno je le odpreti Terminal, ki se skriva nekje pod Pripomočki (Utilities). Lahko pa si namestite nekoliko naprednješi iTerm2. Sicer se ne spominjam natančno, kateri jeziki so bili že v osnovi nameščeni. Če nam kakšen manjka, si v večini primerov pomagamo s Homebrew, oziroma snamemo namestitvene programe in sledimo navodilom. Tudi tukaj se ne bomo ukvarjali z VB in C#.
[2018:] Po prebiranju dokumentacije lahko povzamem: Večina
skriptnih jezikov je prednameščena. Ni pa nameščen noben prevajalnik. Za
prevajanje C, C++ in Objective-C je potrebno namestiti:
Opcija 1: XCode in Command Line Tools, ki nam namesti llvm-gcc/clang. Za naše primere bo zadostovalo. Namestitev
Opcija 2: GCC, GNU Compiler Collection, ki ga namestimo s Homebrew. Namestitev
Naredimo si mapo koda, kjer bomo shranjevali naše programe. Odpremo
terminal in se znajdemo v svoji domači mapi. Natipkamo
mkdir koda
, ter se premaknemo v ustvarjeno
mapo cd koda
. Zapomnimo si lokacijo mape, ki
jo preverimo s pwd
. Glej Slika 2.
2.3. Windows
Verjetno si je na Windowsih najbolj smotrno namestiti brezplačen Visual Studio Community, ali njegovo različico brez grafičnega okolja Visual C++ Build Tools /* V nadaljevanju VS */. Ker me za Windos uporabnike najbolj skrbi, dodajam še pot do developer command prompta. Če si namestil Visual Studio Community, klikni Start → Vsi programi → Visual Studio 2015 mapa → Developer Command Prompt for VS2015. Če si namestil Visual C++ Build Tools, klikni Start → Vsi programi → Visual C++ Build Tools mapa → Visual C++ 2015 x86 Native Tools Command Prompt. Glej Slika 3.
Naredimo si še mapo, v katero bomo shranjevali našo kodo. Klikni Start,
napiši cmd in pritisni Enter. Verjetno si pristal v svojem domačem
direktoriju C:\Users\Uporabnik
. Natipkaj:
C:\Users\Uporabnik>mkdir koda
C:\Users\Uporabnik>cd koda
2.4. Urejevalniki besedil
Linux: Vim,
Emacs,
SublimeText,
Kate /*kde*/,
Gedit /*gnome*/, nano, piko,
femto … Hehe, ne femto editor ne obstaja, ampak se je tako lepo
nadaljevalo … Svetujem, da si željen urejevalnik namestite z
upravljalnikom paketov, ki ga na sistemu imate, saj boste tako imeli
najmanj težav pri posodabljanju. Torej: yum install vim
, apt-get install vim
,
emerge vim
… , ali z njihovimi grafičnimi
različicami, kot so Synaptic, Adept …
OSX: TextEdit, TextWrangler, SublimeText, Vim for Mac OSX, Emacs For Mac OSX, Atom …
Windows: Notepad++, AkelPad, SublimeText, Atom ali kar tekstovni urejevalnik Visual Studia, ki ga kar pohvalijo … NotePad bo za naše potrebe v tem prispevku več kot dovolj.
3. Opisi nekaterih jezikov s primeri
Navedla bom nekaj aktualnih jezikov. Kateri jezik izberemo je odvisno od naloge/projekta, ki smo si ga zadali. Na primer: za izdelovanje dinamične spletne strani je nekako bolj primeren PHP kot C, kernel modula ne bom pisala v JavaScriptu itd. …
Posamičen jezik bom najprej kratko opisala, nato navedla osnoven primer napisan v danem jeziku, PozdravljenSvet, in pokazala kako se program prevede ali tolmači. Nekateri jeziki potrebujejo prevajalnike /*compiler*/, nekateri pa tolmače /*interpreter*/. Da smo dosledni. Nekatere termine bom pisala v angleščini, saj včasih ne poznam pravega prevoda, v izogib nesporazumom. Poskušala bom posredovati čim več povezav do vsebin, ki izčrpneje pojasnujejo uporabljene termine, pojme, produkte, … Nekako se moram omejiti, sicer se pisanje nikoli ne konča. o.O
Prevajanje ali tolmačenje programa je odvisno od operacijskega sistema in tukaj mogoče ne bom najbolj kompatibilna z vami, saj “laufam” na Linux i686, na starem računalniku in si zatorej ne morem omisliti nekega IDE-ja ali virtualnih Windowsov, saj bi mi računalnik “počepnil”. Iz navedenih razlogov za programiranje uporabljam vim in terminal. Vi ste verjetno na Winowsih in tam vam ne znam konkretno pomagati, zato sem vam navedla ustrezne IDE-je in povezave nanje, da si jih lahko namestite in preberete kako se to počne z njimi. Programe sicer pišemo enako povsod, le način izvedbe prevajanja je drugačen.
[2016:] Dopolnjena kompatibilnost, vendar je Vim
še vedno moj IDE:P Vim Koans
/* Ok, priznam, da včasih tudi neovim, vendar še vedno
večkrat natipkam samo vim. O Vimu pa mogoče kdaj drugič. */
3.1. Java
Ima trenutno največ razvijalcev. Znana je po prenosljivosti. Aplikacija napisana v Javi dela praktično na vseh operacijskih sistemih, ki imajo Javo nameščeno /*crossplatform*/. V Javi je napisano veliko Android aplikacij in igric, spletnih aplikacij, … Če zanemarimo število 0day-ev, ki vsak dan pricurljajo na plano, je trenutno eden najbolj popularnih jezikov. Je OOP (object oriented programming) jezik. Predogled, kaj bi se zgodilo na svetu, če Jave ne bi bilo: Javapocalypse. Več
// PozdravljenSvetJava.java
public class PozdravljenSvetJava{
public static void main(String[] args){
System.out.println("Pozdravljen svet!");
}
}
V OS X in Linux terminalu:
Prevajalnik za Javo je javac, ki
si ga namestiš skupaj z jre7/8-openjdk (ime paketa je odvisno od
distribucije) s pomočjo emerge, apt-get, yum, pacman, … Za namestitev Jave JDK,
ki namesti tudi JRE, na OS X, bo najbolje sledititi Oraclovim navodilom.
Namestitveni paket snameš
tukaj.
Odpri terminal in se premakni v prej narejeno mapo koda
ter shrani zgornjo
kodo v datoteko PozdravljenSvetJava.java
. Nato izvedi ukaz
javac PozdravljenSvetJava.java
. Preveden
program izvedeš z java PozdravljenSvetJava
. Glej Slika 4.
Windows:
Sledi navodilom in si
namesti Java SE Development
Kit.
Dodaj pot. Na Windows 10: Control Panel → System and Security → System →
Advanced system settings → Environment Variables → System Variables →
Path → Edit → New → Prilepi pot do jdk bin, v mojem primeru C:\Program Files\Java\jdk1.8.0_92\bin
. Nato klikaj OK, Apply ipd. Nakar klikni
start, vpiši cmd ter stisni Enter. Preveri če vse deluje. Natipkaj
java -version
in
javac -version
, ter preveri izpise. Premakni
se v prej narejeno mapo koda ter natipkaj
notepad PozdravljenSvetJava.java
. V tako
odprto beležnico skopiraj zgornjo kodo. Shrani kot
PozdravljenSvetJava.java (ne kot Text files, ampak kot All files), zapri
beležnico in izvedi ukaze, kot opisano prej. Glej Slika 5.
IDE:
Na računalnik si namestiš IDE Eclipse in s “klikanjem” opraviš isto.
[Opozorilo:] Javo po eksperimentiranju raje odnamesti, saj prinaša veliko nevarnosti. V kolikor želiš raziskovati naprej, si jo pač pusti nameščeno, vendar bodi previden.
3.2. C in C++
C je verjetno moj najljubši jezik, K&RC Ace of Spades in Dennis MacAlistair Ritchie, znan tudi kot DMR, Lemmy. Ne vem kako bi opisala mojo navezanost na C. Henry Precheur jo je opisal takole: C, old friend. Gremo k bistvu. Čeprav C in C++ velikokrat navajamo skupaj, kot v tem primeru, gre za dva različna jezika. C++ nekako izhaja iz C-ja, je pa OOP, kar C ni. C++ se široko uporablja v programski industriji: sistemi, video igrice, gonilniki, server/klient aplikacije, … C je jezik Linux kernela, kar bi moralo povedati dovolj. Tu bi navedla še citat Linusa Torvaldsa:
C++ is a horrible language. In other words: the choice of C is the only sane choice.
Kontekst: V katerem jeziku naj bo napisan Linux kernel …
Pa mogoče še: :P /* Moram nehati, takih in podobnih rekov je ogromno. */
Dennis Ritchie invents a powerful gun that shoots both forward and backward simultaneously. Not satisfied with the number of deaths and permanent maimings from that invention he invents C and Unix.
Več o C: Wiki | Egon Zakrajšek: ANSI C | ASMR C :P | Bash in C
En izmed meni najljubših tečajev na edX je Harvardov CS50, ki začne in gradi na C-ju. Zelo priporočam.
// PozdravljenSvetC.c
#include <stdio.h>
int main(void){
printf("Pozdravljen svet!\n");
return 0;
}
V OS X in Linux terminalu:
Zgoraj naveden primer shraniš s pomočjo urejevalnika besedil kot
PozdravjenSvet.c
. Nato ga prevedeš /*compilas*/ s pomočjo
gcc /*GNU Compiler Collection*/ prevajalnika, z
ukazom gcc PozdravljenSvetC.c -o PozdravljenSvetC
.
Tako dobljen program izvedeš s
./PozdravljenSvetC
seveda v direktoriju,
kjer se nahaja program. Datoteka mora biti izvršljiva:
chmod +x PozdravljenSvetC
.
Windows:
Odpri Visual Studio ukazno vrstico, kot opisano v poglavju 2.3. Premakni
se v mapo koda, natipkaj notepad PozdravljenSvetC.c
,
skopiraj zgornjo kodo v beležnico in jo shrani. Beležnico
zapri. Kodo nato prevedi v VS ukazni vrstici s
cl PozdravljenSvetC.c
ter jo izvedi tako, da
natipkaš PozdravljenSvetC v ukazni vrstici. The Infamous Windows “Hello World” Program
In ja, tudi v C-ju se da napisati spletno stran:P
// PozdravljenSvetCpp.cpp
#include <iostream>
int main(){
std::cout << "Pozdravljen svet!" << std::endl;
return 0;
}
V OS X in Linux terminalu:
Zgoraj naveden primer shraniš s pomočjo urejevalnika besedil kot
PozdravljenSvet.cpp. Prevedeš ga s pomočjo Gnu prevajalnika
/*compilerja*/ g++, ki je vključen v že prej omenjeni gcc, z ukazom
g++ PozdravljenSvetCpp.cpp -o PozdravljenSvetCpp
.
Dobljeni program izvedeš s ./PozdravljenSvetCpp
v direktoriju, kjer se nahaja program. Datoteka mora biti izvršljiva:
chmod +x PozdravljenSvetCpp
.
Windows:
Odpri Visual Studio ukazno vrstico, kot opisano v poglavju 2.3.
Premakni se v mapo koda, natipkaj notepad PozdravljenSvetCpp.cpp
,
skopiraj zgornjo kodo v beležnico in jo shrani. Kodo nato
prevedi v VS ukazni vrstici s
cl /EHsc PozdravljenSvetCpp.cpp
ter jo
izvedi tako, da natipkaš PozdravljenSvetCpp v ukazni vrstici.
Programska okolja /*IDE*/:
Namesto, da delate v terminalu, si lahko namestite okolja kot so: Eclipse, NetBeans, Visual C++ (M$, menda vključen v Visual Studio), Xcode(OSX), … Tam odklikate kar je treba. Kot vidite okolja podpirajo več programskih jezikov, vključujejo razhroščevalnike /*debugerje*/, nudijo dopolnjevanje besed, te že sproti opozarjajo na napake in so primerna za velike projekte. Na posredovanih povezavah dobite navodila za namestitev teh okolj in njihovo uporabo.
3.3. C# (C Sharp)
C# je Microsoftov klon Jave. Aplikacije napisane v C# delajo v Windows okolju in potrebujejo .NET ogrodje /*framework*/. Je splošno orientiran jezik.
O tem jeziku vem bore malo. Winsow nimam, da bi karkoli testirala, tako da ne bom pametovala. Mogoče si bom winse namestila na kako virtualno mašino, ko kupim nov računalnik, da malo raziščem ta sistem in s tem tudi C#. Do takrat vam pa posredujem povezave do strani z več informacijami.
// PozdravljenSvetcs.cs
public class PozdravljenSvetcs
{
public static void Main()
{
System.Console.WriteLine("Pozdravljen svet!");
}
}
Kot sem že povedala, okrog C# ne bom pametovala, navajam povezavo do primera: Hello World -- Your First Program (C#).
Na Windowsih imate po večini verjetno nameščen Visual Studio, tako sem vsaj opazila na Windows računalniku, ki ga imam v razredu. Sicer pa si brezplačno namestite Visual Studio Express ali Visual Studio Comunity. Na slednji povezavi lahko tudi kupite, na primer, Professional. Za naše poskuse bo pa več kot dovolj brezplačen paket Visual C++ Build Tools.
[2016:] Ali pač …
Windows:
Odpri Visual Studio ukazno vrstico, kot opisano v Poglavju 2.3. Premakni se v mapo koda:
cd \
cd C:\Users\Uporabik\koda
Natipkaj notepad PozdravljenSvetcs.cs
in
pritisni Enter, skopiraj zgornjo kodo v beležnico in jo shrani. Zapri
beležnico in v ukazni vrstici natipkaj
csc PozdravljenSvetcs.cs
. Preveden program,
ki je pri tem nastal, PozdravljenSvetcs.exe
, izvedi tako, da v ukazni
vrstici natipkaš PozdravljenSvetcs
.
Na ostalih sistemih se s C# ne bomo ukvarjali, saj je ta jezik specifika Microsoftovih Windowsov.
3.4. Python
Je splošno orientiran jezik in uporaben za različne namene in industrije: letalstvo, obramba, znanost, finance, programiranje v oblakih, … Google App Engine je napisan v Phytonu. Veliko ljudi se ga uči kot prvi programski jezik. Je pregleden, enostaven, … Navajam nekaj trditev iz The Zen of Python, ki jih ne bom prevajala, da se kakšna vsebina ne izgubi:
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Le kako bi komu ne bil všeč tak jezik?
Več: Wiki | Dive Into Python 3 | Non Programmer’s Tutorial for Python 3
# PozdravljenSvetpy.py
#!/usr/bin/python3
print("Pozdravljen svet!")
Ker je Python prvi skriptni jezik omenjen v tem prispevku, bom tu napisala še nekaj skupnih lastnosti pri izvajanju skript. Skriptni jeziki ne potrebujejo prevajalnika, ampak tolmača, ki vsako programsko vrstico sproti preslika v strojne ukaze in jih izvede [L]. Naši skripti je dobro povedati pot do tolmača, ali jo z določenim tolmačem izvesti. Pot do tolmača povemo s shebang vrstico, citiram:
#!/bin/sh
#!/bin/bash
#!/bin/csh -f
#!/usr/bin/perl -T
#!/usr/bin/env python
Shebang vrstica je sestavljena iz magičnih znakov #!
, čemur
sledi pot do tolmača in ostale opcije. Pot do tolmača na sistemu lahko, na
primer, poiščemo z whereis
ali which
ukazom. Da nam ni potrebno tipkati na
primer python mamba.py
, ampak le ./mamba.py
, pri čemer je mamba.py
ime
naše skripte, je treba skripto narediti tudi izvršljivo. To storimo s
chmod +x mamba.py
.
V OS X in Linux terminalu:
Na sistemu moramo imeti seveda nameščen Python3, ki je zadnja različica
Pythona. Na Linux distribucijah si ga namestimo z ustreznim upravljalnikom
paketov. Če smo izbrali prej omenjen Kali Linux, je že nameščen.
Na OSX naj bi bil tudi prednameščen, sicer si ga namestite s
Homebrew ali
iz uradne spletne strani.
Med Python2 in Python3 je kar nekaj razlik. Podpora
Python2-ju se počasi izteka, tako da je verjetno
smiselno uporabiti Python3. Preverimo pot do
“tolmača” which python3
ali whereis python3
, kodo primerno
prilagodimo. Lahko pa uporabimo bolj prenosljivo, a nekoliko nevarnejšo različico
#!/usr/bin/env python3
. Zgornji tekst shranimo v datoteko PozdravljenSvetpy.py,
ki jo izvedemo z ./PozdravljenSvetpy.py
ali
python3 PozdravljenSvetpy.py
.
Pytonov upravitelj paketov je
pip. Če želim
namestiti, na primer, Django, natipkam:
pip install django
.
Windows:
Snamemo in namestimo zadnjo stabilno verzijo Pythona3 iz uradne spletne
strani python.org. Pri namestitvi
odklikamo, naj nam namestitveni program doda Python v pot. Pot
preverimo in po potrebi dodamo, kot smo to storili pri Javi v poglavju
3.1.
Nato kliknemo Start, vpišemo cmd in pritisnemo Enter. Premaknemo
se v mapo koda in natipkamo notepad PozdravljenSvetpy.py
.
V beležnico skopiramo zgornjo kodo, shranimo in beležnico
zapremo. Program nato izvedemo s
python PozdravljenSvetpy.py
.
Spletna stran v Pythonu2: python-cgi.py
IDE:
Na MIT-jevem tečaju Introduction to Computer Science and Programming in Python predlagajo Anacondo, že večkrat omenjen Eclipse, PyScripter …
3.5. JavaScript
Najprej poudarimo: JavaScript ni Java. JavaScript jezik so razvili pri Netscape-u z namenom pisanja interaktivnih spletnih strani. Podpirajo ga vsi brskalniki. Je jezik spleta in spletnih strani, ki postaja vedno bolj popularen. Skupaj s HTML-jem poživi spletne strani, omogoča izpoljnjevanje raznih obrazcev itd. Na tej strani je kar nekaj JavaScripta: MathJax, galerija, … Je pač nujno zlo, ki se mu dandanes težko ognemo. Sama se ga izogibam, ko se le da.
Več: Wiki, Modern JavaScript Explained For Dinosaurs, Dwitter
JavaScript funkcijo zapišemo v datoteko s končnico .js
, ki jo nato v
HTML-ju, v glavi <head>
kličemo s <script>
in izvedemo v <body>
.
V spodnjem primeru naj bosta datoteki .html
in .js
v istem direktoriju,
da se ne ukvarjamo s potmi.
Najprej napišimo našo pozdrav funkcijo v JavaScriptu:
//javascript.js
function pozdrav(){
document.write("Pozdravljen svet!");
}
Sedaj napišimo še .html
dokument, ki bo uporabil našo pozdrav funkcijo:
<!--PozdravljenSvet.html-->
<!DOCTYPE html>
<html lang="sl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="javascript.js"></script>
</head>
<body>
<h1>Moj prvi JavaScript</h1>
<script>pozdrav()</script>
</body>
</html>
Za pisanje JavaScripta ne potrebujete nobenih posebej nameščenih
prevajalnikov, saj kodo interpretira (tolmači) že vaš brskalnik (Safari,
Firefox, Chrome, IE, Midori, …). Kodo napišete s pomočjo kakega
urejevalnika besedil, nato jo vključite v vašo .html
datoteko, kot
opisano zgoraj, ki jo odprete z brskalnikom (.html
datoteko to je).
V kolikor je JavaScripta malo, kot v našem zgornjem primeru, ga lahko
vključimo kar naravnost v .html
. Zgornji primer v eni .html
datoteki:
<!--PozdravljenSvet.html-->
<!DOCTYPE html>
<html lang="sl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script>
function pozdrav(){
document.write("Pozdravljen svet!");
}
</script>
</head>
<body>
<h1>Moj prvi JavaScript</h1>
<script>pozdrav()</script>
</body>
</html>
Zgornji .html
na tem strežniku:
PozdravljenSvet.html.
IDE:
Poleg tekstovnega urejevalnika, lahko seveda uporabite Eclipse, NetBeans itd. Javascript ima tudi ogromno knjižnic, ogrodij, še.
Za ekperimantiranje v JavaScriptu večkrat pride prav tudi kak CodePen, JS Bin, JSFiddle ipd.
3.6. Visual Basic
Še eden izmed jezikov s katerim nimam nobenega stika, ampak ga omenjajo kot pomembnega. Njegovo naravno okolje je Windows. Je enostaven, hitro učljiv jezik primeren za začetnike. V njem so narejene enostavne GUI (graphical user interface) aplikacije. Tudi ta jezik je del M$ Visual Studia.
' PozdravljenSvetvb.vb
Module PozdravljenSvetvb
Sub Main()
MsgBox("Pozdravljen svet!")
End Sub
End Module
Res ne poznam tega jezika, zato vam bom raje navedla povezavo do primera, kot da pametujem in c/p: Hello World in Visual Basic.
Najbližje kar sem prišla VB je VBScript, s katerim sem se igrala v poletnih mesecih, po izpolnjenih vseh obrazcih, napisanih vseh papirjih, ko moramo na šoli sedeti od 8:00-14:00 brez dijakov in gredo človeku po glavi neumnosti. Na naši šoli so povsod “Okna”. Ena izmed skript, ki je takrat nastala: crke.
Na Windowsih si kodo shranite s pomočjo urejevalnika besedil kot crke.vbs in kliknete nanjo. Ne morem testirat, če še dela, saj veste … nimam Winsow …
/*Opozorili so me, da vas nod32 (morda tudi kak drugi protivirusni program) ne spusti na to stran, saj misli, da je trojanec ali nekaj njemu podobnega … Zato sem v kodo v oklepaju (“aWScript.Shell”) dodala namerno a, da strani ne blokira. Črko a od tam zbrišite, če želite, da koda deluje.*/
[Dodatek 2016:]
Windows:
Odpri Visual Studio ukazno vrstico, kot opisano v poglavju 2.3. Premakni
se v mapo koda, natipkaj notepad PozdravljenSvetvb.vb
, skopiraj spodnjo kodo
v beležnico in jo shrani. Kodo nato
prevedi v VS ukazni vrstici z vbc PozdravljenSvetvb.vb
, ter jo izvedi tako,
da natipkaš PozdravljenSvetvb
v ukazni vrstici.
3.7. PHP
Še vedno popularen skriptni jezik pri spletnih oblikovalcih. Mišljen je bil kot jezik za dinamične spletne strani. Ponavadi se ga učimo skupaj z SQL in ga povežemo s HTML-jem in raznimi bazami, kot so MySQL, postgreSQL, MariaDB ipd. Popularni CMS-ji napisani v PHP-ju so na primer WordPress, Joomla!, Drupal itd.
<!--PozdravljenSvet.php-->
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>PHP pozdrav</title>
</head>
<body>
<h1>Pozdrav v PHP-ju</h1>
<?php echo "Pozdravljen svet!"; ?>
</body>
</html>
Za predstavitev .php
spletne strani je potreben spletni strežnik kot je
Apache,
Nginx,
Lighttp … Zgornjo kodo torej
shranimo s pomočjo urejevalnika besedil kot PozdravljenSvet.php in jo
naložimo na server. Do nje nato dostopamo s pomočjo brskalnika:
http://primer.com/PozdravljenSvet.php
IDE:
Na domačem računalniku si, za postavitev spletnega strežnika, baze, php-ja, pomagamo z WAMP (Winsi), MAMP (OSX), LAMP (Linux), vsa tri okolja podpira AMPPS, ali kako podobno rešitvijo.
IDE-ji, ki podpirajo PHP, so že večkrat omenjeni NetBeans, Eclipse …
Spletna ogrodja: Laravel, Zend, Symfony …
Zgornjo php kodo <?php echo "Pozdravljen svet!"; ?>
lahko tudi skopiramo in
izvršimo na 3v4l.org ali na eval.in, pa
še kje, in tako preverimo njeno pravilno delovanje, ne da bi lokalno imeli
nameščen spletni strežnik.
Slovenski spletni tečaj: PHP tečaj: Brezplačni tečaj programiranja
3.8. Ruby
Draguljček, uporaben za programiranje spletnih aplikacij, 3D
modeliranje, robotika, internet, sistemska administracija …
Jezik balansira funkcijsko programiranje in imperativno
programiranje, je lep in “čist” jezik, uporaben povsod. Uporablja ga
GitHub,
Metasploit (prvotno sicer napisan v Perl, 2007
reprogramiran v Ruby), Homebrew, Redmine …
Paketni upravitelj za Ruby je
RubyGems. Na primer: Ruby on
Rails s pomočjo gem namestimo z: gem install rails
. Kolikor se
spomnim, je imel ta jezik letos kar nekaj varnostnih težav, vendar
verjamem, da so jih odpravili.
Več | Ruby: A programmer’s best friend | why the lucky stiff
# PozdravljenSvetrb.rb
#!/usr/bin/env ruby
puts "Pozdravljen svet!"
V OS X in Linux terminalu:
Ruby je skriptni jezik in ga izvajamo Podobno kot Python v
poglavju 6. Zgornjo kodo shranimo s pomočjo
urejevalnika besedil kot PozdravljenSvetrb.rb
in v direktoriju kjer se
datoteka nahaja izvedemo ./PozdravljenSvetrb.rb
ali ruby PozdravljenSvetrb.rb
.
Pred tem preverimo pot do tolmača in izvršljivost datoteke. Če
datoteka ni izvedljiva/izvršljiva /*executable*/ jo naredimo
izvršljivo: chmod +x PozdravljenSvetrb.rb
.
Za lažje ugotavljanje napak v programu, ugotavljanja ali program
pravilno deluje, kako ga izboljšati ipd., ima Ruby
irb. Če želimo
gledati kako se program izvaja izvedemo: irb PozdravljenSvetrb.rb
.
Windows:
S spetne strani rubyinstaller.org
si snamemo namestitveni program, ki
ga zaženemo in okljukamo, naj doda Ruby v pot. Ko je namestitev
zaključena, odpremo cmd in preverimo namestitev z ruby -v
. Če nam izpiše
verzijo, vse deluje?, sicer preverimo pot
(glej Java 3.1) ali si pomagamo z assoc
in ftype
v cmd-ju,
nekako takole:
# odpremo cmd
assoc .rb=RubyScript
# spodnjo pot do ruby ustrezno prilagodimo
ftype RubyScript="c:\Ruby23-x64\bin\ruby.exe" "%1" %*
Nakar v cmd-ju natipkamo
notepad PozdravljenSvetrb.rb
, skopiramo
zgornjo kodo v beležnico in jo zapremo. Datoteko izvedemo z
ruby PozdravljenSvetrb.rb
.
Spletna stran v Ruby: ruby-cgi.txt
IDE:
Eclipse, RubyMine, Aptana …
Namesiš si okolje in odklikaš svojo pot …
Spletna ogrodja: Ruby on Rails, Sinatra …
3.9. Perl
Perl. Kaj naj rečem? Punce imamo rade bisere:P Včasih so ga imenovali ga tudi
“Duct tape of the internet”. Je
dinamičen, splošno orientiran jezik, podobno kot PHP, Ruby, Python. Uporablja
se za sistemsko administracijo, omrežno programiranje, kot tudi grafiko itd. Vsaka slava
enkrat mine in tako je upadla tudi popularnost tega jezika, ki pa je še vedno
dokaj prisoten. Perl velja za “grd” jezik, saj je težko berljiv, slabo
pregleden ipd. Je pa tudi učinkovit jezik. Podobno kot velja, da je
netcat “swiss army knife of the
internet”, je veljalo, da je Perl “The Swiss Army
Chainsaw of Scripting Languages”
ℹ.
Perl skripta se, podobno kot Ruby,
Python itd, začne s shebang vrstico, natančneje z zaporedjem znakov
#!
za katerim je pot do tolmača.
PozdravljenSvetpl.pl
#!/usr/bin/perl
print "Pozdravljen svet!\n";
V OS X in Linux terminalu:
Zdornjo kodo, seveda brez prve vrstice, ki je ime datoteke, prepišemo s
pomočjo urejevalnika besedil in shranimo kot PozdravljenSvetpl.pl
. Nato jo
izvedemo z ukazom: perl PozdravljenSvetpl.pl
ali kar ./PozdravljenSvetpl.pl
. Pred tem se
prepričamo ali je pot do tolmača prava: whereis perl
ali which perl
. Seveda moramo imeti na računalniku Perl nameščen.
Za Perl je napisanih tudi ogromno modulov, ki jih namestimo s pomočjo
cpan-a perl -MCPAN -e shell
in ko smo v lupini namestimo željen modul, na primer
HTML::Form install HTML::Form
.
IDE:
Spletna ogrodja: Dancer, Catalyst …
V Perlu, podobno kot v Pythonu, Ruby itd, lahko pišemo tudi razne cgi skripte: Perl cgi primer
[Dodatek 2016]
Na Božič 2015 se je Perl prerodil in uradno je izšel jezik Perl 6.
Več: Wiki | Perl 6 Introduction
Windows:
Nameščanje Perl 6 si bomo olajšali z Rakudo
Star, ki je uporabna produkcijska
distribucija Perl 6. Z njihove spletne strani snamemo zadnjo stabilno
verzijo namestitvenega programa
za svoj operacijski sistem in jo poženemo. Ko je namestitev zaključena,
preverimo ali imamo C:\rakudo\bin
v poti,
sicer dodamo (glej Java 3.1). Kliknemo Start, natipkamo cmd in
pritisnemo Enter. Premaknemo se v mapo koda, ter natipkamo
notepad PozdravljenSvetp6.p6
. V tako odprto
beležnico skopiramo spodnjo kodo in jo shranimo. Beležnico zapremo in
program tolmačimo z perl6 PozdravljenSvetp6.p6
.
# PozdravljenSvetp6.p6
v6;
say "Pozdravljen svet!";
Ali povedano drugače:P
# PozdravljenSvetp6.p6
v6:
"Pozdravljen svet!".say;
3.10. Assembly (asm)
Documentation is a lie, source is an abstraction, assembly is the truth. And microcode is scripture.
egyp7, scriptjunkie1, aionescu
Poslastica za konec \m/
Zadnji v tej predstavitvi jezikov, a verjetno najpomembnejši. V slovenščini - zbirni jezik. Je nizkonivojski jezik. Nekako oče vseh jezikov, saj se veliko jezikov, ki uporabljajo prevajalnike /*compilerje*/ prevede vanj. Predstavlja najboljši približek dobesednemu prevodu navodil, ki jih računalnik izvaja, v človeku razumljivo obliko. Vezan je na arhitekturo računalnika npr: x86, x64, MIPS, ARM … Uporablja se za nekatere gonilnike, bootloaderje (grub, lilo), viruse, obratni inženiring, situacije, ko nam višji programski jeziki ne pomagajo. Malo ljudi na svetu še piše v tem jeziku, in ti so večinoma dobro plačani, a vsaj branje tega jezika nam pride zelo prav pri razhroščevanju, optimizaciji programov itd. Omejila se bom na x86 assembly, saj ga najbolj poznam zaradi arhitekture, ki jo imam, na tem 10 let starem računalniku.
Več: Wiki | x86 Assembly - knjiga | X86 Opcode and Instruction Reference Home | BOX-256 | Much Assembly Required | [xchg rax, rax] Hmmm, moram nehat! Samo je toliko zanimivega …
global _start
section .data
align 2
str: db 'Pozdravljen svet!',0xA
strLen: equ $-str
section .bss
section .text
_start:
; op dst, src
mov edx, strLen
mov ecx, str
mov ebx, 1
mov eax, 4
int 0x80
mov ebx, 0
mov eax, 1
int 0x80
.686
.model flat, stdcall
EXTERN MessageBoxA@16 : proc
EXTERN ExitProcess@4 : proc
.const
msgText db 'Pozdravljen svet!', 0
msgCaption db 'Windows assembly', 0
.code
Main:
push 0
push offset msgCaption
push offset msgText
push 0
call MessageBoxA@16
push eax
call ExitProcess@4
End Main
V OS X in Linux terminalu:
Tukaj gredo stvari malo drugače, saj je Assembly odvisen, ne le od arhitekture, ampak tudi od klicev operacijskega sistema. Zato večinoma ne moremo prevajati in izvajati enake kode, na različnih sistemih. Se pa da marsikaj, če se hoče. Spodaj bom opisala le klasičen primer in prevajanje na operacijskem sistemu Linux, arhitekturi i686. Program lahko sicer prevedemo tudi na Linux 64bit (Kali Linux, če ste sledili predlogu na začetku prispevka) s spodaj navedenimi ukazi.
Če vas zanima, kako bi napisali in prevedli program na OSX, si preberite kratek članek Filippa Valsorda Making system calls from Assembly in Mac OS X.
Torej Linux 32bit:
Zgornjo kodo (Primer Linux x86), s pomočjo urejevalnika besedil, shranimo kot
PozdravljenSvetAsm.asm
. Prevedemo jo s pomočjo, na primer
nasm /*Netwide
Assembler*/ z ukazom
nasm -felf32 -g -o PozdravljenSvetAsm.o PozdravljenSvetAsm.asm
, tako
dobimo PozdravljenSvetAsm.o
, ki ga nato povežemo z
ld -go PozdravljenSvetAsm PozdravljenSvetAsm.o
.
Tako dobljen PozdravljenSvetAsm
nato izvedemo z
./PozdravljenSvetAsm
.
Nekaj osnovnih primerov prevanja programov z nasm na raličnih arhitekturah in operacijskih sistemih:
# 32bit Linux
nasm -felf32 -g -o PozdravljenSvetAsm.o PozdravljenSvetAsm.asm
# 64bit Linux
nasm -felf64 -g -o PozdravljenSvetAsm.o PozdravljenSvetAsm.asm
# 32bit OSX
nasm -fmacho32 -o PozdravljenSvetAsm.o PozdravljenSvetAsm.asm
# 64bit OSX
nasm -fmacho64 -o PozdravljenSvetAsm.o PozdravljenSvetAsm.asm
Povezovanje pa gre povsod podobno z:
ld -o PozdravljenSvetAsm PozdravljenSvetAsm.o
M$ uporablja masm /*Microsoft Macro Assembler*/, ki je vključen tako kot C# in VB v Microsoft Visual Studio IDE. Obstaja še GAS, FASM, YASM …
Windows:
Z namestitvijo Visual Studia smo namestili tudi MASM (Microsoft Macro
Assembler), ki ga bomo uporabili za naš primer. Kodo iz Linux okolja moramo
nekoliko preurediti za naše okolje. Kliknemo Start, poiščemo Visual C++
2015 x86 Native Tools Command Prompt ali Developer Command Prompt for
VS2015 in v njem napišemo notepad PozdravljenSvetasm.asm
. V beležnico
skopiramo in shranimo zgornjo kodo (Primer Windows x86) in jo
prevedemo z ml /coff /c /Cp PozdravljenSvetasm.asm
. Nakar jo povežemo z
link /subsystem:windows /out:PozdravljenSvetasm.exe kernel32.lib user32.lib PozdravljenSvetasm.obj
. Program nato izvedemo tako, da v VS ukazni vrstici napišemo
PozdravljenSvetasm
.
[2018] Bonus:
Ker je ravno Assembly, prilagam še ARM primer izveden na RPI3. Kodo in prevajanje si lahko pogledate na Sliki 19. Ne bom razlagala več kaj in kako. Če ste se prebili do tukaj, verjamem, da se boste znašli:D
ARM arhitektura je trenutno zelo razširjena v vgrajenih sistemih. Najdemo jo v pametnih telefonih, tablicah, prenosnikih, kalkulatorjih, pametnih televizijah itd. Če vas zanima več o ARM Assembly, zelo priporočam Azeria Labs. Razna dodatna gradiva najdete, med drugim, tudi na asm.thi.ng.
IDE:
Če se temu lahko tako reče, Fresh: Uporaben na vseh sistemih, ki jih podpira FASM: DOS, Linux, FreeBSD, BeOS, MenuetOS …
Windows sistem: Kot že omenjeno Microsoft Visual Studio, winasm, EasyCode …
OSX sistem: Xcode? vsebuje nasm.
4. Nabor učnih vsebin
Zgornji PozdravljenSvet primeri nam pomagajo pri postavljanju našega programerskega okolja in testiranju, če vse dela tako kot je treba. Nato se je potrebno začeti učiti strukture, sintakse, funkcij, objektov itd. posamičnih jezikov. Lahko bi vzeli knjigo, svinčnik in papir ter se lotili učenja, kar je tudi zelo zaželjeno. Knjig o učenju določenih programskih jezikov je ogromno.
4.1. Povezave do nekaj knjižnic
Na koncu je treba v roke knjigo vzeti in prebrati tisti prekleti priročnik.
Tukaj imam v mislih brezplačne knjige, saj dijaki in študenti navadno nimajo veliko denarja:
Če pa imate kaj denarja za porabiti, zelo priporočam knjige založbe nostarch.
Takih in podobnih knjižnic je na internetu ogromno in ravno tako knjig. Čeprav se knjige tipa Learn PHP in 24h zdijo smešne, so mogoče za začetnike vseeno uporabne, da dobijo neko osnovo. Seveda se nobenega programskega jezika ne da naučiti v 24h. Sama sem prebrala kar nekaj knjig, ki jih mogoče, ko sem jih brala, niti nisem prav razumela, ampak potem stvari nekako padejo na svoje mesto s časom in uporabo.
Ko neko knjigo/tekst o določenem programu preberemo, si seveda želimo sprobati kako to v praksi deluje. Zato si po navodilih iz prejšnje točke 2. postavimo programersko okolje in začnemo eksperimentirati.
Pri tem nam pomagajo tudi interaktivne spletne strani s svojimi prevajaniki, ki nam določajo naloge in razložijo stvari.
4.2. Povezave do brezplačnih spletnih tečajev
Learn serija: Povezava sicer kaže na C, ampak imate v menuju povezave do ostalih jezikov.
Velikokrat se učimo z opazavnjem drugih ljudi. Za boljše razumevanje nam zato pomagajo tudi razne video vsebine.
4.3. Nekaj povezav do video vsebin
SecurityTube: Večinoma plačljivo
Lynda: Večinoma plačljivo
YouTube: Veliko vsebin, le poiskati jih je treba
bosnianbill /* Oprostite, sem mogla. Sam Bosnian Bill res vse odpre:D */
4.4. Spletna orodja
Kot veliko zbirko kode in forum, kjer nam pomagajo pri programskih zagatah omenjam še stackexchange in stackoverflow. Čeprav se vsi delamo norca, verjamem, da večinoma poškilimo kdaj pa kdaj tja. Jaz priznam:D
Kot zadnjo in eno najpopularnejših strani zadnje čase navajam GiHub, ki je ogromna baza izvorne kode raznih programov, ki nam pomaga pri razumevanju.
5. Zaključek
Torej: Kako začeti? Le moje skromno mnenje
Če bi radi le malo eksperimentirali, obiščite zgoraj omenjeno Codecademy.
Če bi se radi resneje in sistematično začeli učiti programiranja pa svetujem udeležbo enega izmed spodaj navedenih brezplačnih tečajev (potrebno seveda znanje angleščine):
Blažji začetek: MIT tečaj: Introduction to Computer Science and Programming Using Python: edX registracija, tečaj opravljate po lekcijah in delate domače naloge | mit vse gradivo dostopno, pogledate kar želite
Trši začetek: Harvard tečaj: CS50’s Introduction to Computer Science: edX
V tem tekstu sem se omejila na 10 jezikov, saj sem morala narediti nek izbor. Programskih jezikov je še ogromno. Veliko jih je še, ki bi jih morala omeniti kot npr. Lisp, Lua, Tcl, Haskell, Scala, Go … Nekateri jeziki imajo že svoja narečja. Poznamo različne stile pisanja programov. Stil kodiranja Linux kernela, si lahko ogledate tukaj. Določeni so razni standardi, kot npr. ANSI C …
Predlagam, da si izberete en jezik in se ga nekaj časa držite. V njem naredite čim več projektov, spoznate čim več funkcij, preberete in eksperimentirate čim več. Lahko pa storite tako kot jaz, ki sem naredila CodeCademy v par tednih in na koncu nisem vedla več niti kako v Pythonu napisati PozdravljenSvet. Preveč informacij naenkrat pač ne gre. Saj veste 7±2 pomnilni enoti. Tak pristop iz lastnih izkušenj odsvetujem.
Kolkor sem se pozanimala učijo na nekaterih šolah najprej Python in C++, in verjetno bi bilo s tema dvema jezikoma najbolje začeti. Namestite si Anacondo ali Eclipse, preberete njuna navodila za uporabo in začnete. Pred tem naredite morda še tečaj Pythona na CodeCademy, ali preberete kak priročnik, povezave do njih sem vam posredovala, in začnete s svojimi projekti. Navadno se začne s Hello World, nato razne matematične funkcije, nakar if, switch, for stavki, slovarji, “classes” in potem ideje kaj bi naredili pridejo kar same. Medtem si ogledate še kako kodo na GitHubu, jo sprobate, se igrate “scriptkiddy-je” in idej ne zmanjka.
Na IDE-je se ne spoznam, kot sem že povedala imam preslab računalnik za kaj takega, ampak kolikor sem prebrala ob pisanju tega prispevka, bi svetovala Eclipse, saj podpira največ jezikov in je kar priljubljen. Tudi Android aplikacije se da pisati s pomočjo Eclipse. Tako, da bi si lahko sami napisali kako igrico za vaš telefon ipd., saj se vedno igrate z njimi.
Ko osvojite strukturo, sintakso enega jezika, vam bo lažje naprej spoznavati še kak jezik, saj je princip podoben. Razlikujejo se imena funkcij, kako jih kličeš, imena objektov itd., ampak logika ostane ista. Od Pythona ali C++ se nato premaknete gor (Perl, Ruby …) ali dol (C, asm), odvisno v katere vode vas zanese. V glavnem brez strahu. Nič ne boste pokvarili. Če je s programom kaj narobe, pač ne bo delal in to je to. Včasih vas sicer pozdravi kaka Kernel panika ali na Winsih kak Blue screen of death. Nič hujšega. Windowse je tako priporočljivo ponovno namestiti vsake toliko časa, tisti na Linuxu in BSD-ju se boste pa že znašli.
Učenje programskih jezikov je podobno učenju tujih jezikov. Pri slednjih spoznavaš slovnico, besedišče, skladnjo ipd. Pri programskih jezikih pa spoznavaš funkcije, sintakso itd. Slednje je verjetno veliko lažje, saj je venomer prisotna neka logika, kar pri tujih jezikih ni nujno, če izvzamemo nemščino, ki je dokaj logična. Pri tujih jezikih je vedno en kup posebnih primerov in nekaj moraš kar slišati in vedeti po posluhu. o.O
Sama sem začela najprej s pisanjem Bash skript, ki sem jih na svojih sistemih potrebovala, nato malo html-ja, php-ja ipd. Prvi jezik, ki sem se ga resno lotila pa je bil C. C ni nujno dober kot prvi jezik, čeprav pravijo, da tisti ki zna C, se zelo hitro nauči vseh ostalih jezikov. Problem s C-jem je, da vam lahko hitro vzame vso voljo, saj moraš večino funkcij pisati na roke, uporabljati pointerje, znati uporabljati računalniški spomin, … Kot prvi jezik je verjetno primeren za bolj trmaste ljudi, ki se ne vdajo zlahka. Meni se je nekaj podobnega zgodilo že pri sistemih, saj sem po Windows 98 začela z Gentoo, ker je znanec delal eksperimente na meni in je verjetno želel videti ali bom preživela. V stilu:
Force them to use Gentoo like I did. That will sort the men from of boys (or the women from the girls, if you’re optimistic).
Takrat sem sedela in buljila tiste “proklete flage” in paketke cele dneve in noči, vendar mi ni žal, saj sem se ogromno naučila, naletela sem verjetno na čisto vse možne probleme. Ampak na koncu sem “skompajlala” tisti kernel, na srečo preživela in nisem izgubila razuma o.O Tako nekako je s C-jem pri programskih jezikih.
Upam, da bo ta prispevek komu pomagal pri začetkih programiranja.
V kolikor opazite kake napake, ali je potrebna kakšna izboljšava, mi prosim sporočite, saj seveda ne želim zavajati nikogar in sem sama amater na tem področju, tako da so kritike zaželjene.
! konec.f90
program konec
print *, "Dost mam. Lahko noč svet!!!"
end program konec
Program konec je napisan v nekoč popularnem Fortranu. V terminalu
program shranimo, ga s pomočjo gcc prevedemo
gfortran -o konec konec.f90
in izvedemo s
./konec
.
EOF