I'm into networking/network security. Which language is good to complement that?

starriol

Member
Jan 3, 2006
187
0
0
The topic is pretty self explanatory. My first project is to build a reliable SMTP server.

I know ZERO (0) about programming... my first thought was Visual basic... but that is dying, plus it's too visual and I'm way too cool for that :D
No, seriously, it looks uterly unpowerfull.

Then I thought "let's do things right and go with C++"... but it's kinda kamikaze since it's so darn complicated.

So... I thought... Borland Delphi 2007!!!
I've read some guy recommending it... it seems it is similar to pascal (or based on it) and people recommended pascal to start... PLUS I've seen some projects @ sourceforge.net written in Delphi... plus it's not terrible complicates to begin with.

My medium-long term objective is to learn C++ and/or java... but right now I want a semi powerfull and semi easy language which I can use to write network applications with.

Whatcha think?
 

Atheus

Diamond Member
Jun 7, 2005
7,313
2
0
Almost all server applications are written in C (plain old not ++) because it is powerful and produces fast machine code. C is the one you really need, especially if you're into security, but it isn't really a good first language. It forces you to manage memory yourself - something that other languages do for you at the (likely) cost of performace.

You could learn to write simple networked software in just about any language - Java, Python, and C# are all good alternatives. Just pick one you like the look of, they all have good networking APIs, and good tutorials on the web to get you started.

Now for the discouraging bit...

My first project is to build a reliable SMTP server.

No it isn't. You say you know nothing about programming? Realistically you will have to write a lot of code before you can even start an SMTP server. Your first project will be something that prints 'hello world' to the screen, followed by something that asks 'what is your name?', and then when you enter 'bob', it prints 'you entered bob!'.

A average computer science student might take on an SMTP server after one or two years of study, but even then, you wouldn't want to actually put it live. Mail and web servers have to be written very carefully to avoid things like buffer overflows which make the software vulnerable to attack. Not easy.

I don't want to put you off programming, it can be fun and rewarding, but just be aware you are not going to produce any kind of SMTP server right away.
 

Lethrir

Junior Member
Sep 4, 2007
3
0
0
Personally I would get a copy of MS Visual C# Express (free) if you're a Windows person and look at some tutorials on the net - W3Schools are normally good.

Alternatively, get the Java SDK and hunt about for a good editor and some tutorials. Java will run on just about anything and you don't need to be tied to Microsoft stuff.

C# and Java are both good languages to learn from as they are relatively safe and forgiving, without letting you get away with too many bad habits like VB does... They will both help a transition to C++ later although C is a bigger jump.

And I'd also like to back up Atheus - programming can be great fun but it is complicated and takes some effort to get good at. It's hugely rewarding though so go for it and don't be put off if you get stuck or in too deep - there's always help on forums, newsgroups and tutorials.
 

Martin

Lifer
Jan 15, 2000
29,178
1
81
1. Learn python: its easy to pick up, has a decent API and is actually a pretty powerful and elegant language, so you won't outgrow it any time soon (if ever).

2. Your first project, as others have said will be a a few small little simple programs.

3. The SMTP server you'll build won't be useful for anything other than you playing around with it. I've made some neat networked apps (IM client/server, P2P file sharing program, decentralized game etc) and they were fun and relatively easy to make, and excellent projects for developing your skills, but useless in terms of the real world.
 

WobbleWobble

Diamond Member
Jun 29, 2001
4,867
1
0
Originally posted by: aceO07
I heard Raytheon uses ADA for some of their critical systems.

That's because it's such a terrible language to use, you instantly forget what you've written ;)

If you look up code for exploits and such, they're usually written in C. As said, if you're planning to build a production type of SMTP server, good luck. Writing one for proof-of-concept can be pretty fun though.
 

hans007

Lifer
Feb 1, 2000
20,212
18
81
i'd say you are probably going to have to learn C/ C++.

uh... writing an smtp server is not gonna be easy. i have written a really crappy web server and a really crummy ftp client in college, but an smtp server i think would be harder than both of those.
 

Journer

Banned
Jun 30, 2005
4,355
0
0
C++ isnt that hard to learn. i dont know why people think it is so bad...i would start off with it or java...
 

hans007

Lifer
Feb 1, 2000
20,212
18
81
Originally posted by: Journer
C++ isnt that hard to learn. i dont know why people think it is so bad...i would start off with it or java...

I didn't really think it was that hard to learn either.

I actually tried to learn VB at one point after being a c++ programmer and I didn't understand why things were so awful in VB.

I think C++ is probably a good language to learn because well the way you think C++ is probably going to be the pretty common way in the industry to think about things
 

Neverm1nd

Member
Jul 3, 2006
42
0
0
For networking, I'd learn whatever shell script language your platform supports - i.e. batch/bash etc.

Don't try to code an SMTP server for the next few years.