6 kommentarer
Reuter: Nej, jag tror inte heller att filerna är borta. De finns naturligtvis kvar på disken. Och det existerar mycket riktigt sådana virus som ni beskriver, men orsaken till att jag inte tror på att det är...
C, Java eller Python? För den som vill skriva egna program finns en mängd programmeringsspråk. Vi ska i denna artikel gå igenom de grundläggande egenskaperna hos de mest populära.
Trots att det finns en stor mängd mjukvara tillgänglig är det inte alltid vi lyckas hitta ett program som fyller våra behov. En lösning på detta problem är att skriva sitt eget program, något som ofta inte är så svårt som det låter. Här ska vi titta på en viktig aspekt för den som vill börja programmera, nämligen val av programmeringsspråk.
Det finns som bekant en hel mängd olika programmeringsspråk som kan användas för att skapa mjukvara. Vilket man väljer beror till viss del på vad ändamålet är, men det har även en del att göra med personlig smak. Vissa tycker att C är världens bästa språk till alla uppgifter, medan andra tycker att det är ett hopplöst språk som enbart är krångligt att arbeta med.
En definition som gör det möjligt att dela upp programmeringsspråken i två grupper är om de är kompilerade eller interpreterande. Ett kompilerat språk innebär att källkoden kompileras innan programmet kan köras, det omvandlas alltså i förväg till ett format som datorn förstår.
De interpreterande språken i sin tur omvandlas dynamiskt vid körningen, något som gör att vi slipper kompilera koden. Fördelen med detta är bland annat att det blir enklare vid utvecklingen samt att det går enklare att göra ändringar i efterhand.
Nackdelen är att prestandan blir sämre. Vill du ha maximal prestanda är det ett kompilerat språk som gäller, till exempel C eller C++.
Uppdelningen i dessa två grupper är dock inte helt entydig. Det finns undantag, till exempel Java. Här kompileras en del av koden i förväg, medan en del interpreteras vid programkörningen.
C
Vi
börjar med att titta på det mest använda språket i Linuxvärlden, nämligen C.
Detta kan sägas vara alla moderna språks moder, då de flesta språk som tas upp
i denna artikel själva är skrivna i C.
En fördel med C, och även det som gör det möjligt att få goda prestanda, är att det är ett hårdvarunära språk. Med C får vi nära tillgång till datorns hårdvara, det går till exempel att skriva data direkt till en viss plats i internminnet. Detta ger stor flexibilitet och stora möjligheter, men det gör även C till ett komplicerat språk.
Ett exempel är att vi måste allokera (avsätta) minne till en variabel innan data skrivs till den, i annat fall kommer programmet troligen att krascha. Den minnesmängd som avsätts måste även vara tillräckligt stor, avsätter vi till exempel tio byte och sedan försöker lagra elva byte kommer programmet återigen att krascha.
Det finns även andra saker som kan få programmen att krascha, om vi som programmerare inte tänker oss för. Det här är alltså ett språk som kräver eftertanke.
Det finns hjälpbibliotek att använda. Bland de mer namnkunniga hittar vi bland annat Gtk+. Detta bibliotek används för att skapa grafiska applikationer och är en av grundstenarna i Gnome. Dessa bibliotek gör att vi inte behöver uppfinna hjulet flera gånger utan kan använda redan skriven kod för att till exempel skapa ett fönster med knappar och dylikt.
Sammanfattningsvis kan C sägas vara ett mycket kraftfullt språk som ger möjlighet att skapa program med goda prestanda. Till nackdelarna hör att det kräver relativt mycket kunskap av programmeraren.
Slutligen ett exempel på hur en kodsnutt i C kan se ut:
int main (int argc, char *argv[])
{
if (argc != 1) {
usage();
}
}
Mer information: www.c-faq.com, www.open-std.org/jtc1/sc22/wg14/
|
|
| C-programmering i programmet Scite. |
C++
Programmeringsspråket
C++ är, vilket hörs på namnet, en utveckling av C. Här finns ett antal
funktioner och finesser som saknas i C, vilket gör C++ till ett mycket
kraftfullt språk.
När vi pratar om C++ måste även C++ Standard Library nämnas. Det är en samling av klasser och funktioner som underlättar för utvecklaren. För C++ finns även en rad andra hjälpbibliotek tillgängliga. Ett av de mer kända är det grafiska biblioteket Qt. Det är skrivet i C++ och används som bas för bland annat KDE.
Ett exempel på hur det klassiska "Hello world"-programmet kan se ut:
#include <iostream>
int main()
{
std::cout << "Hello, world!\n";
}
Mer information: www.cplusplus.com, http://www2.research.att.com/~bs/C++.html
Java
Java
är lite speciellt i det hänseende att språket delvis kompileras och delvis
interpreteras. Språket liknar C++ men är enklare att använda. En annan fördel
är att det är plattformsoberoende, samma kod ska alltså gå att göra på både
Windows- och Linuxsystem.
Hemligheten bakom plattformsoberoendet kallas "Java Virtual Machine", vilket kan beskrivas som en virtuell körmiljö för programmen. Mjukvaran behöver alltså inte interagera direkt med värdsystemet, något som (i alla fall i teorin) gör att plattformen inte spelar någon roll. Detta brukar även fungera relativt bra i praktiken, men tyvärr innebär det också att prestandan hos programmet blir lidande.
Till Java finns stora kodbibliotek med funktioner att utnyttja. Ett exempel är Swing som gör det relativt enkelt att skapa grafiska applikationer.
Exempelkod:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
Mer information: http://java.com
Två nya datorplattor från Motorola, Xoom 2 och Xoom 2 Media Edition, finns från och med idag tillgängliga i Sverige. Det handlar om uppföljare till den tidigare plattan Xoom och under skalen gömmer sig en hel del nyheter.
Nu listar HTC och Samsung vilka Androider i företagens sortiment som uppgraderas med version 4 av det mobila operativsystemet.
Svenska internetanvändare är sämre än genomsnittet i Europa på att skydda sig på nätet. Det konstaterar Microsoft som undersökt 11 000 internetanvändare i 27 länder.
Samsungs första bärbara dator i det tunna och lätta ultrabooksegmentet är här. Datorn har fått beteckningen 5-serie Ultra och är en uppföljare till X360 ur företagets 9-serie.
Företaget Hypershop säljer en liten batteriförsörjd adapter som gör om en USB-lagringsenhet till en trådlös filserver. Adaptern kallas CloudFTP och ger trådlösa enheter tillgång till extern lagring. Bland enheterna som stöds finns Apple Ipad och Iphone.
Steve Jobs beskrivs som mannen bakom en mängd av Apples innovationer. Han och företaget förändrade mobiltelefonbranschen med Iphone, musikbranschen med Itunes och datorbranschen med den första Macintosh-datorn. Här är ett axplock av produkterna Steve Jobs varit med och lanserat genom åren.
Apples grundare och VD avled i natt efter en lång tids sjukdom. Steve Jobs blev 56 år gammal.
Windows Phone 7 är en imponerande nystart av Microsoft. Kanske kan de nu komma ikapp konkurrenterna.
Världens minsta grafiska Linuxdistribution, Tiny Core, har uppdaterats till version 4.0. Här är godbitarna av nyheterna.
Arbetet med den kommande stabila versionen Ubuntu 11.10, med kodnamn Oneiric Oncelot, drog igång på allvar redan i maj i år. I skrivande stund är det drygt två veckor kvar innan den färdiga versionen släpps.
Buffalo Technology lanserar ett säkerhetspaket till NAS-enheterna i Terastation III-serien.
Hängmattan är nedplockad, höstjackan framtagen och solglasögonen går snart i ide. Att hösten närmar sig är ett faktum och om bara ett dussin dagar är det september. Misströsta inte, med Linux och BSD ser det ut att bli en ljus och varm vinter. Här är några av godbitarna som du kan se fram emot att bränna på skiva innan året är slut.
EVGA har utvecklat ett Geforce GTX 570-kort som ståtar med dubbla den vanliga mängden inbyggt minne.
Computexmässan i Taiwan pågår för fullt och en hel del nyheter hittar ut. Bland annat har LG visat upp sin nya V300 med 3D.
Kom in i diskussionen
6 kommentarer
Reuter: Nej, jag tror inte heller att filerna är borta. De finns naturligtvis kvar på disken. Och det existerar mycket riktigt sådana virus som ni beskriver, men orsaken till att jag inte tror på att det är...
Senaste frågorna
Datormagazin är datortidningen för dig som vill veta mest.
Vår ambition är att göra en tidning med djupare och mer avancerade artiklar än vad du hittar i andra datortidningar. Samtidigt väjer vi inte för att på ett handfast sätt förklara hur saker och ting fungerar. Du ska alltid känna att du har nytta av tidningen.
Välkommen till Sveriges största tidskrift för avancerade datoranvändare!
For-loopen i bash skrivs helst utan `ls *.jpg`, eftersom du då måste starta en ny process.
for fil in *.jpg ; do
fungerar lika, och är snabbare.
Ni borde även tittat på något funktionellt programmeringsspråk, som Scheme, Haskell eller Erlang samt Ruby. Om man vill programmera iPhone, så behöver man lära sig ObjectiveC, som är den mesta inspirationen till Java.
Objektorienterade språken kommer från Simula och Smalltalk.
Simula har bla inspirerat C++
SmallTalk har inspirerat ObjectiveC, Ruby och Python.
Grunden till de moderna programmeringspråken är Algol. C och Pascal har många ideer från Algol.
Men de första programmeringsspråken var Fortran, Lisp och Cobol.
AndersJ: Tack för kommentarerna! Det kommer fler artiklar och jag lovar att vi inte kommer att glömma bort de funktionella språken.
Det är väl i princip omöjligt att göra en komplett översikt av programspråk, men jag saknar "gamla hederliga" pascal och efterföljaren Delphi
Vill man gräva ner sig i mängder av programspråk, så finns Wikipedia som en översikt och utgångspunkt. Ofta finns också länkar därifrån till vidare information om respektive programspråk.
Jag saknar en utav de större språken, nämligen C#. Det är ju ett kraftfullt språk som är en blandning av Java och C++. Dessutom är C# plattformsoberoende (i teorin, med Mono i praktiken) och kan använda samma kod sör att skapa ett program för Windows, Mac, Linux samt Android och Iphone.
I en sådan här artikelserie hade det varit tacksamt med ett lite längre kodexempel - till exempel lösning på ett mindre problem. Hello World säger väldigt lite jämfört med om det för alla språk finns (exempelvis) ett enkelt program med in-/utmatning samt enkel listmanipulation för en snabb jämförelse.