Ga naar inhoud

Programmeren Algemeen


Aanbevolen berichten

Programmeren is mijn passie, zoals een kok gepassioneerd is over eten. Vandaar dit topic :D

Hier kan over alle programmeertalen gepraat worden. Ik trap wel af:

Desktop applicaties

Desktop applicaties schrijf ik in Java, wat ik de mooiste taal vindt. Zo strict mogelijk (Static Typing = Je moet variabelen declareren voor je ze kunt gebruiken).

Websites

Voor websites gebruik ik graag C#. Helaas is die taal iets minder strict dan Java, maar voor websites is het zeer efficiƫnt (Met het ASP.NET Framework en al zijn onderdelen).

PHP

Vroeger gebruikte ik de scripttaal PHP om websites te maken. Dit deed ik in combinatie met het CodeIgniter Framework. Daarmee kan je werken in een MVC structuur (Model = logica, View = uiterlijk, Controller = brug tussen die twee). Om zo je code netjes te scheiden.

C#

Nu ben ik overgestapt op ASP.NET met C#. Waarom? ASP.NET heeft ook die MVC mogelijkheid, EN: Visual Studio is een superhandige IDE, die je heel veel werk uit handen neemt. Het Entity Framework (Die je models aan je database koppelt, waardoor 'je objecten in je database zitten'. Zoiets noemt men ORM (Object Relational Mapping). Zo hoef je dus niet met ingewikkelde databasequeries te werken (SELECT blabla FROM blabla WHERE blabla). Dit scheelt heel veel tijd, waardoor je je echt op je doel kan focussen.

Conclusie

Mijn eerst taal was BASIC. Dit is de simpelste taal die er is, en is eigenlijk gewoon engels. Maar naar mijn mening gaat er niets boven High-Level talen zoals Java, C++, C# etc. (In tegenstelling tot Low-Level talen zoals C en Python).

Nu jullie!

aangepast door Deemster
Link naar bericht
Delen op andere sites

Top ^O^

Ik ben zelf wel ooit begonnen met Basic (MSX-Basic, later QBasic en uiteindelijk AMOS, een Amiga-variant zonder regelnummers en met speciale commando's om heel makkelijk sprites, muziek, effecten en animatie te laden).

Nu heb ik basiskennis van php, javascript en de talen die in APMS en GameMaker zitten, volgens mij zijn die C++-gerelateerd. Ik wil iets met Unity gaan doen, dan werk je ook met javascript.

Link naar bericht
Delen op andere sites

IDE (Integrated development environment) :P Visual Basic heeft niet zoveel te maken met de originele Basic (Ik gebruikte QuickBasic compiler dacht ik). Visual Basic is een beetje knoppen en formpjes slepen naar het scherm :P Ben er niet zo'n fan van. De opvolger daarvan is dan weer VB.NET . Maar in het .NET Framework gebruikt vrijwel iedereen C#, wat een hele mooie taal is.

Link naar bericht
Delen op andere sites

Ik vind het wel verwarrend dat veel namen op C lijken.

C

C++

C#

Objective-C

D

C shell

Nu worden ze lang niet allemaal meer gebruikt, maar toch. Vroeger wilde ik aan Turbo Pascal beginnen trouwens, maar nooit aan toegekomen. Daarna kreeg je Delphi als IDE (dank voor het woord, ik kon het zo snel niet meer vinden). Er is ook een C++ uitbreiding voor Delphi trouwens.

Link naar bericht
Delen op andere sites

Objective C is dan ook een uitbreiding op C (waarmee je objectgeoriƫnteerd kan programmeren). C++ is ook gebasseerd op C. C# is dan weer een kloon van Java (maar dan wat minder strict). Dus die laatste is wel verwarrend ja :P

Link naar bericht
Delen op andere sites

Visual Basic heeft niet zoveel te maken met de originele Basic (Ik gebruikte QuickBasic compiler dacht ik). Visual Basic is een beetje knoppen en formpjes slepen naar het scherm :P

Welke versie van Visual Basic heb je het over? Volgens mijn man worden er in VB wel degelijk Basic commando's gebruikt als FOR ... NEXT, IF ... THEN , etc.

En dat knoppen en formpjes slepen naar het scherm zag ik ook zo voor me, maar die knoppen en formpjes moeten wel degelijk gevuld worden, anders heb je gewoon een lege schil.

Link naar bericht
Delen op andere sites

Klopt helemaal wat je zegt Keetie :) Je sleept bijvoorbeeld een knop, dubbelklikt erop, en schrijf het stukje code dat uitgevoerd wordt als iemand op de knop drukt. Dat is niet mijn enige klacht tegen Visual Basic (en VB.NET) hoor ;) Ik ben een purist en ik vind de syntax van VB/VB.NET erg lelijk.

Link naar bericht
Delen op andere sites

Bullshit. Ik maak wel eens een typefoutje, maar talen zijn altijd mijn sterkste kant geweest ;) Bij chatten type ik gewoon wat in me opkomt, en mijn code wil ik zo netjes mogelijk houden. Qua structuur, en qua consequentheid :)

Link naar bericht
Delen op andere sites

Klopt helemaal wat je zegt Keetie :) Je sleept bijvoorbeeld een knop, dubbelklikt erop, en schrijf het stukje code dat uitgevoerd wordt als iemand op de knop drukt. Dat is niet mijn enige klacht tegen Visual Basic (en VB.NET) hoor ;) Ik ben een purist en ik vind de syntax van VB/VB.NET erg lelijk.

Het gaat niet om de 'listing', maar wat je ermee bereikt, vind ik.

Link naar bericht
Delen op andere sites

Zoals ik zei, ik maak wel eens een typefoutje :P Nu moet ik in dit geval bekennen dat ik 'gebaseerd' wel vaker fout schrijf. Naja :P Ik leer in ieder geval snel nieuwe talen (Talenknobbel) en zal nooit 'dt-fouten' maken, of nog erger (DE HORROR): "We zijn is een keer...". Hehe.

Link naar bericht
Delen op andere sites

#include <iostream.h>
using namespace std;
int main ()
{
for ( ; ; )
{
printf("Hallo Retroforum");
}
return 0;
}

Zolang je niet met brainfuck als programmeer taal aan komt zetten is het goed.....

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.

Het voorbeeld hierboven stelt Hello World voor....

aangepast door Ross
Link naar bericht
Delen op andere sites

Dat ben ik helemaal met je is!

LOL

Zolang je niet met brainfuck als programmeer taal aan komt zetten is het goed.....

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.

Het voorbeeld hierboven stelt Hello World voor....

Holy shit :') Kende Brainfuck nog niet. Wel ideaal voor masochisten :D

Link naar bericht
Delen op andere sites

Hah, hoezo dat Keetie? ;) Ik schrijf geen inwikkelde code hoor.

Leuk voorbeeldje van een Main Class van een spacegame:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package spacegame;

/**
*
* @author Danny
*/
import java.util.Scanner;
public class Spacegame {

   /**
    * @param args the command line arguments
    */

   public static void main(String[] args) {
       // Maak scanner om user input op te vangen
       Scanner userInput = new Scanner(System.in);

       // Vraag welk ruimteschip ze willen
       System.out.println("What type of ship? (U / R / B)");

       // De eerstvolgende user input wordt het type schip
       String typeOfShip = userInput.nextLine();

       // Laat de Schipfactory een schip maken aan de hand van de user input
       EnemyShip enemy = EnemyShipFactory.makeEnemyShip(typeOfShip);

       // Laat de vijand de speler volgen
       enemy.chase();

       // Laat de vijand op het scherm verschijnen
       enemy.display();

       // Laat de vijand op de speler schieten
       enemy.shoot();
   }
}

aangepast door Deemster
Link naar bericht
Delen op andere sites

In het verleden had ik ook een lijst gevonden met nogal onbekende programmeertalen:

Little Known Computer Languages

Author Unknown

-- PASCAL, FORTRAN, COBOL, and BASIC --

These languages are well known and more or less well used throughout the computing industry. There are also numerous other languages, however, which are less well known, yet still have there ardent devotees. In fact many of these little known languages have the most ardent of devotees. For those who wish to know more about these obscure languages --- and why they are obscure --- the following catalog is presented.

--SIMPLE--

SIMPLE is an acronym for Sheer Idiots Monopurpose Programming Linguistic Environment. This language, developed at the Hanover College for Technological Misfits, was designed to make it impossible to write code with errors in it. The statements are, therefore, confined to BEGIN, END, and STOP. No matter how you you arrange the statements, you cannot make a syntax error.

--SLOBOL--

SLOBOL is best known for the speed, or lack of it. Although many compilers allow you to take a coffee break while they compile, SLOBOL compilers allow you to travel to Bolivia to pick the coffee. Three or four programmers are known to have died of boredom sitting at their terminals while waiting for a SLOBOL program to compile. Weary SLOBOL programmers often try to return to a related, but infinitely faster language, COCAINE.

--VALGOL--

From its modest beginnings in Southern California's San Fernando Valley, VALGOL is enjoying a dramatic surge of popularity across the industry. VALGOL commands include REALLY, LIKE, and Y'KNOW. Variables are assigned with the =LIKE and =TOTALLY operators. Other operators include the 'California Booleans' FERSURE and NOWAY. Repititions of code are handled in FERSURE loops. Here is an example of a VALGOL program:

LIKE, Y'KNOW {IMEAN} START

IF

A = LIKE BITCHEN AND

B = LIKE TUBULAR AND

C = LIKE GRODY ** MAX

{FERSURE} ** 2

THEN

FOR I = LIKE 1 TO OH-MAYBE 100

DO WAH + {DITTY ** 2}

BARF{I} = TOTALLY GROSS{OUT}

SURE

LIKE BAG THIS PROGRAM

REALLY

LIKE TOTALLY {Y'KNOW}

VALGOL is also characterized by it unfriendly error messages. For example, when the user makes a syntax error, the interpreter displays the message

GAG ME WITH A SPOON.

--LAIDBACK--

Historically, VALGOL is a derivative of LAIDBACK, which was developed at the (now defunct) Marin County Center For T'ai Chi, Mellowness and Computer Programming, as an alternative to the more intense atmosphere in nearby Silicon Valley. The Center was ideal for programmers who liked to soak in hot tubs while they worked. Unfortunately, few programmers could survive there for very long, since the Center outlawed pizza and RC Cola in favor of bean curd and Perrier water. Many programmers mourn the demise of LAIDBACK because of its reputation as a gentle and non-threatening language. For example, LAIDBACK responded to syntax errors with the message:

SORRY, MAN, I CAN'T DEAL WITH THAT.

--SARTRE--

Named after the late existential philosopher, SARTRE is an extremely unstructured language. Statements in SARTRE have no purpose or meaning, they just are. Thus SARTRE programs are entered and left to define their own functions. SARTRE programmers tend to be boring, depressed, and are no fun at parties.

--FIFTH--

FIFTH is a precision mathematical language in which the data types refer to quantity. The data types range from CC, OUNCE, SHOT and JIGGER to FIFTH (hence the name of the language), LITER, MAGNUM and BLOTTO. Commands refer to characters manipulated by the programmer, such as CHABLIS, CHARDONNAY, CABERNAY, GIN, VERMOUTH, VODKA, SCOTCH and WHATEVERSAROUND. The many versions of the FIFTH language reflect the sophistication and status of the various users groups. Commands in the ELITE dialect include VSOR and LAFITE, while the GUTTER dialect includes HOOTCH and RIPPLE. The latter dialect is a favorite of frustrated FORTH programmers who often end up devoting a great deal of effort on becoming end-users of this language.

--C--

This language was named for the grade recieved by its author when it was submitted as a class project in computer science. C is best described as a low level programming language. In fact, most C programs require more statements than machine language. In this respect it bears a strong resemblance to COBOL.

--LITHP--

This otherwise unremarkeable language is distinguished by it absence of an "S" in the character set. Programmers must instead substitute "TH". LITHP is said to be ustheful in prothething lithps. The language was for a time considered as the standard for Taiwanese computers, since the absence of "S" would allow the manufacturer to save a small amount of manufacturing costs.

--DOGO--

Developed at the Massachusetts Institute of Obedience Training, DOGO heralds a new era of computer literate pets. DOGO commands include SIT, STAY, HEEL, and ROLL_OVER. An innovative feature of DOGO is "puppy graphics", a small cocker spaniel that occasionally leaves a deposit as he travels across the screen. This is considered the de-facto language for writing Fido BBS programs.

--FOCUSALL--

This language is design to run on small computers with minimal memory. For this reason, Commodore machines were originally considered, but declined because of the lack of a paper tape reader. It is only distributed on paper tape, for loading from an ASR-33 teletype. Loading takes about 20 minutes, after which the user is greeted by the message

CONGRATULATIONS, YOU HAVE LOADED FOCUSALL!

The interpreter is then ready to execute any available command. The only available command is LOAD FOCUSALL, which causes the system to once again load the interpreter from paper tape. This operating system is recommended for frustrated Commodore users; when this system has been run several hundred times without error, the user is ready to graduate to Commodore operation, which has a similar disk operating system. The real power of the language comes from the fact that preceeding a command with a line number causes it to be stored and executed in sequence later as in the following example:

100 LOAD FOCUSALL

200 LOAD FOCUSALL

300 LOAD FOCUSALL

.

.

The pronunciation of the name of the language is actually more flexible than the language itself would appear to be; it is pronounced according to your mood at the moment. Actually, the name came from a combination of FOCAL and the habit that optics lab types have had for refering to a lead engineer as a "Focus Man" (ie. "Person"). Someone would then chime in "Yeah, and he'll focus every chance he gets!"

--FASTBOL--

This language is more commonly refered to as QUICKIE. Error messages include the very common "COMPUTUS INTERUPTUS". A closely related language is MOONER.

--GEROTOL--

This language is characterized by the habits of its ardent users. Instructions frequently forget their function while executing and finally conclude with the "I USED TO KNOW THAT" condition code. Loops tend to repeat frequently at sporadic intervals, even when not initiated.

Link naar bericht
Delen op andere sites

Lijkt wel wat op een Startrek game, daar heb ik ook een hele verzameling van, oude versies dan.

Zo te zien is jouw voorbeeld - waar volgens mij iedereen aan meewerkt (public), nog niet af, dus nog geen resultaat te zien ... ;)

Het is even een heel simpel voorbeeldje, dat wel degelijk werkt. Het doet precies wat er staat, het geeft je de keuze een ship te kiezen om tegen te vechten, en het schip zal je achtervolgen, op het scherm verschijnen en je vervolgens aanvallen. Ik ben bezig met een spel wat hier op lijkt, een Cyberpunk RPG met tegenstanders die jij kan aanvallen met verschillende attacks, en je kan levelen door XP op te doen. Uiteraard vallen ze jou ook aan. Dit voorbeeldje wou ik simpel houden :)

aangepast door Deemster
Link naar bericht
Delen op andere sites

Het is even een heel simpel voorbeeldje, dat wel degelijk werkt. Het doet precies wat er staat, het geeft je de keuze een ship te kiezen om tegen te vechten, en het schip zal je achtervolgen, op het scherm verschijnen en je vervolgens aanvallen.

Vertel me dan maar hoe het werkt. Die commando's had ik wel gelezen, maar hoe worden ze uitgevoerd?

Link naar bericht
Delen op andere sites

               // De eerstvolgende user input wordt het type schip
               String typeOfShip = userInput.nextLine();

               // Laat de Schipfactory een schip maken aan de hand van de user input
               EnemyShip enemy = EnemyShipFactory.makeEnemyShip(typeOfShip);

Bovenste line bepaalt het type ship aan de hand van de user input.

Onderste line laat de EnemyShipFactory een ship maken.

EnemyShipFactory.java

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package spacegame;

/**
*
* @author Danny
*/
public class EnemyShipFactory
{
   public static EnemyShip makeEnemyShip(String newShipType)
   {        
       switch (newShipType)
       {
           case "u" :
               return new UFOEnemyShip();
           case "r" :
               return new RocketEnemyShip();
           case "b" :
               return new BigUFOEnemyShip();
           default :
               return null;
       }
   }
}

Stel dat je de EnemyShipFactory dus een ufo laat maken, dan maakt hij een UfoEnemyShip.

UfoEnemyShip.java

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package spacegame;

/**
*
* @author Danny
*/
public class UFOEnemyShip extends EnemyShip
{
   public UFOEnemyShip()
   {
       setName("UFO Enemy Ship");
       setDamage(20.0);
   }
}

Die extend, zoals je wel ziet, de EnemyShip class.

EnemyShip.java

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package spacegame;

/**
*
* @author Danny
*/
public abstract class EnemyShip
{
   private String name;
   private double amtDamage;

   public String getName() { return name; }
   public void setName(String newName) { name = newName; }

   public double getDamage() { return amtDamage; }
   public void setDamage(double newDamage) { amtDamage = newDamage; }

   public void chase()
   {
       System.out.println(getName() + " is following the hero!");
   }

   public void display()
   {
       System.out.println(getName() + " has arrived...");
   }

   public void shoot()
   {
       System.out.println(getName() + " attacks and does " + getDamage() + " damage.");
   }
}

In dit voorbeeldje print hij slechts het aantal schade op het scherm, en haalt dit niet van de health van de speler af.

Ik post binnenkort wel de source van mijn Cyberpunk RPG :)

aangepast door Deemster
Link naar bericht
Delen op andere sites

Dus ik had gelijk: het eerste programmaatje kon niet werken. Ik miste de uitvoeropdrachten.

Deemster, ben jij Danny?

Ah, ik snapte even niet dat je daarop doelde. Zonder die Classes werkt het programma inderdaad niet. Maar de verantwoordelijkheden scheiden tussen de onderdelen is belangrijk om je code netjes te houden. Dat wou ik zeggen met dat voorbeeld, waarin ik enkel de Main Class liet zien :) En ja, ik ben inderdaad Danny :P

Link naar bericht
Delen op andere sites

int main (void)

{

int sambaboy_programeerervaring;

if sambaboy_programmeerervaring == 1 {

newpost();

}

return 0;

}

Haha :D

public String description(User user)

{

if (user.equals("Mike Brouwer"))

{

return "Een vervelend mannetje met het doel audio en video te stelen, en onder zijn eigen naam te posten";

}

return null;

}

Link naar bericht
Delen op andere sites

Hieruit maak ik op dat ik een 1 op gebied van programmeerervaring heb en de kans op terugkeer een 0 is. Beetje in de buurt? :')

Geeksquad. :')

Als programmeerervaring van samba-boy "true" is dan mag hij een nieuwe post in dit topic maken.

In alle andere gevallen: einde

Dat is ongeveer wat er staat :P

Link naar bericht
Delen op andere sites

Exceptions zijn trouwens meestal mooier dan if-statements om user-input te controleren:

If-Statement

// Weergeef een welkomsbericht als de username niet leeg is
if (!user.getUsername().isEmpty())
{
   System.out.println(user.getUsername() + " is now logged in!");
}
// Geef psuedo-error als username leeg is
else
{
   System.out.println("Wrong username or password!");
}

Exception

// Probeer een welkomsbericht te weergeven met de username erin
try 
{
   System.out.println(user.getUsername() + " is now logged in!");
}
// Als er geen username is, is er dus geen user. Dus error!
catch(Exception e)
{
   throw new Exception("Wrong username or password!");
}

aangepast door Deemster
Link naar bericht
Delen op andere sites

Programmeren is ook mijn passie! Doe het graag & volg momenteel een MBO niveau 4 opleiding in Applicatieontwikkeling! ;)

Momenteel werk ik ook op de avonden en zaterdag bij een ICT bedrijf wie ook hun eigen softwarepakketen ontwikkelen, heerlijk om te doen dat programmeren! ;)

Link naar bericht
Delen op andere sites

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...