These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE General Discussion

 
  • Topic is locked indefinitely.
 

What Languages is EVE Online Programmed In?

First post
Author
Implying Implications
Sebiestor Tribe
Minmatar Republic
#41 - 2012-06-27 03:41:28 UTC
EVE is programmed in html.
Poetic Stanziel
The Scope
Gallente Federation
#42 - 2012-06-27 03:55:18 UTC
Watooshi Makoochji wrote:
What languages is EVE Online programmed in?
Visual Basic and COBOL.
Tippia
Sunshine and Lollipops
#43 - 2012-06-27 04:06:22 UTC
Fearless M0F0 wrote:
Real men code in assembler using EDLIN Twisted
Gee. Thanks. I had repressed those memories. Now I'm going to have to spend another fortune on therapy to get rid of the dread and horror those five letters evoke.

Also, Scheme > all.
Poetic Stanziel
The Scope
Gallente Federation
#44 - 2012-06-27 04:22:38 UTC
Tippia wrote:
Also, Scheme > all.
Because matching thousands of parens is awesome. (See also LISP.)
St Mio
Imperial Academy
Amarr Empire
#45 - 2012-06-27 05:39:49 UTC
Icelandic of course. Even the comments!
black cree
Utopian Research I.E.L.
#46 - 2012-06-27 06:18:28 UTC
Java : not good as learning language despite all the marketing success it has, good for outsourcing large projects.

Pascal : deprecated , good for learning if you want to learn C after that

Python : good for learning, adapted to human mind with lots of semi automatic stuff in the background, performance issue with vanilla version (interpreted language)

C++ : minnie style language : you need to adapt your brain to it, lots of micro managment, no strings attached, old but still active for performance and precision, connected to Unix Oses.

Perl: powerful data modification abilities but obfuscating.
Allyria Kylari
Blue asteroids
#47 - 2012-06-27 08:18:31 UTC
Watooshi Makoochji wrote:

If one were to pursue some training in languages applicable to AI programming in EVE Online or similar games what would guys suggest to start with?


The fact that you first ask about programming languages applicable to AI worries me. If all you want to do is program AI, wouldn't you first seriously study AI? How much computer science theory are you already familiar with? If you have a strong foundation in computer science theory, then you can intelligently select the language that is most suitable for the kind of AI programming you have in mind.

If you just want programming language literacy, then what everyone else has suggested here is great. Just keep in mind that AI and programming languages are two very separate things. If you want to learn languages that are commonly used in the game development industry, then all the languages previously mentioned like C and C++ are strong languages to learn. Being a highly competent programmer in these languages will really improve your resume if you are seeking employment in the gaming industry.
AllUrBase
Just no reason corp
#48 - 2012-06-27 10:21:19 UTC
wikipedia wrote:

Both the server and the client software for Eve Online are developed in Stackless Python, a variant of the Python programming language. Stackless Python allows a relatively large number of players to perform tasks without the overhead of using the call stack used in the standard Python distribution. This frees the game developers from performing some routine work and allows them to apply changes to the game universe without resetting the server.[67] However, the Eve cluster is taken offline daily for database and server maintenance.[68]

Source

CCP also seem to sponsor/fund the Stackless Python project. [1]

I'm wondering if Erlang could also be used for handling concurrency issues, instead of Stackless Python.

Btw, are there any (detailed) Programming + Infrastructure links/dev blogs/resources about EVE? (before I start searching? :P).

As far as the PL are concerned, imho, Python is great to start. It's easy to learn and lets you focus on 'getting your algorithms right', which is really important when you start to learn how to code.

After that you can begin 'specializing' in what you want.

Whatever you choose, however, it's really important to have a good grasp on both the algo stuff (abstract data types, algorithmic complexity etc), and on low-level details (how the language implements core structs and methods, some compiler optimization stuff, userspace<->kernelspace interaction, interactions with the hardware (CPU arch, caches, memory, I/O)), in order to write optimized and efficient code.

For low-level/systems/performance-critical programming, you have no choice but C (and some (inline) asm perhaps). It's a trikcy language, but you will learn a lot writing in C, and you can do some really cool/weird stuff in it too. ;)

C++/Java/C# for large user-space applications and/or middleware. OO really shines in such apps. But I hate it. :P
Scala is becoming quite popular too.

Python or Ruby for smaller user-space apps perhaps, and some scripting. It can also be used for backend web development (Django, Rails etc).

Perl and Shell scripting for admin/maintenance work, handling of text files etc.

Erlang is good if you want to learn about concurrency (and it's becoming very popular in distributed, heavily concurrent systems). Most of the NoSQL db's or AQMP implementation there days are written in either C++ or Erlang, afaik.

Functional PLs, such as SML, are very good for digging deeper into PL, and will put you into a different mindset when coding (ever heard of tail recursion? etc). OCaML is a very nice mix of functional programming and OO, and Haskell, being a pure and lazy functional language, is pretty tricky, but will probably change the way you're writing code forever. :P Lisp probably falls into this category too (too many parentheses however :P), and used to have some applications in AI programming.

If you're into AI, you could also check Prolog (Logical Programming). I never got used to Logical Programming, however it's a nice challenge trying to write a few simple programs in Prolog. Except for Prolog, I think there are some more specialized languages, which focus on machine learning etc.

my 2c
Vaju Enki
Secular Wisdom
#49 - 2012-06-27 10:35:49 UTC
Unfortunately from now on it's not writen on "fault language".

The Tears Must Flow

Sirinda
Ekchuah's Shrine Comporium
#50 - 2012-06-27 10:37:34 UTC
01010100101010101001010111011010010101010100111101000110101101010101100101101010011001


That is your answer.
Nate Guralman
Pandemic Horde Inc.
Pandemic Horde
#51 - 2012-06-27 10:59:00 UTC  |  Edited by: Nate Guralman
C and C++ are NOT obsolete. In fact, they're probably the most important languages in use today. For instance, almost all games today are written in C++, and most operating system code is written in C. And there are still tons of business apps written in C++.

The Tiobe Index tracks the popularity of programming languages, and the top three are C, Java and C++, in that order.
Romar Agent
Science and Trade Institute
Caldari State
#52 - 2012-06-27 11:12:24 UTC  |  Edited by: Romar Agent
As been said, look into C++ and Java and you are set.

Though I would suggest starting with C as it's highly unforgiveable and you will learn everything about the basics (most important memory allocation) in a clear technical way (do this until your synapses bleed and you can shift bits with the best of them Blink ).

If you're having a masochistic streak, I would suggest to take a tour in Windows Programming (WinApi), which leads into some of the darkest, bloodiest C I have ever seen (also gives a good understanding on how GUIs work on a system level).
Watooshi Makoochji
Republic University
Minmatar Republic
#53 - 2012-06-27 12:51:10 UTC  |  Edited by: Watooshi Makoochji
Thanks a lot Myrkala :)

ADDIT: and lots of other good posts since last night! Thanks everyone.
Myrkala wrote:
Watooshi Makoochji wrote:


Given that context, what would you guys suggest to start with? C++ or Python?

I do understand that the most valued programmers tend to have 'multi-lingual' and use different languages for different context, but given I'm just trying to get going, what would be the best to start with.


My adivce, start simple. Learn the basics and expand.

TL;DR Java is a good place to start, transitioning into C# and working with a simple framework before you dip your toe in the cool pool that is C++ and all the different libraries/frameworks there are to choose from.

1. Java
This is good start, learning materials are abundant and the language is well supported and is very common. So even knowing only this language may help you get your foot in the door somewhere, probably not a games company unless its a mobile games company. (Though: Java FX2, a simple framework can now use GPUs for example.)


2. C# (XNA Framework)
This language is very similar in syntax and ideology to Java. (With some exceptions.
It is also fairly common, and a great thing that you get with it is the XNA framework, which can be used to write games and applications for the XBOX 360 and the Windows Phone platform. The documentation is decent and there exist numerous tutorials for creating simple games. So yet another useful tool to add to the belt, writing in the XNA framework will give you insight and experience in coding for games. Having learned OOP by learning Java will help you a lot here.

3. C++
The daddy of games programming, a very powerful language but can fail drastically if you have no clue as to what you are actually writing... pointers and whatnot. With great power comes great responsibility is a term that is often repeated about C/C++. Which is why its better to fail at the easy stuff first (in Java and C# which are much more forgiving) before jumping into C++.

Games programming is much more than just knowing how to code in a specific language. Its about knowing your OOP, Math and knowing the capabilities of the library/framework you've decided to use/your employer uses. Because lets face it... you aren't going to have the skills to write a whole code library/framework yourself in the first years of learning programming.

PS.

I myself am just at the C# level, started learning programming before xmas 2011 and today I am working on improvements to my second game made in the XNA framework with C# (Which I started learning in January), a 2D Dungeon crawler. Just to give a perspective how fast its possible to learn, this next semester I will be starting on C++. Another piece of advice I've seen people give is to not only focus on OOP languages but also learn maybe one functional language, perhaps one like Haskell or APL/J.

I also suggest checking out http://projecteuler.net/ for some problems to solve with programming/maths, be warned it can be addictive. :)

Good luck on your career. Blink
Watooshi Makoochji
Republic University
Minmatar Republic
#54 - 2012-06-27 13:43:43 UTC  |  Edited by: Watooshi Makoochji
Allyria Kylari wrote:
The fact that you first ask about programming languages applicable to AI worries me. If all you want to do is program AI, wouldn't you first seriously study AI? How much computer science theory are you already familiar with? . . .


I don't mean true 'artificial intelligence' as in strong or general purpose intelligence P

To start I just mean 'computerized opponents' as they exist in various computer games these days. I would assume that the 'rats' and 'sleepers' in EVE Online, and the various other types of computer opponents in contemporary computer games (e.g., the opponent soldiers in games like ArmA, Fallout or Borderlands, etc., or the opponent 'societies' in games like Civlization or Rome Total War) are just a specialized set of the rest of the game code, written in C++ or whatever that particular game is based in?

As a social scientist I have virtually no background in computer science theory, so what I'm really trying to do is go in a new direction, and one that will allow me to get a different job than my current one in academia.

Have to be honest though, eventually being involved in efforts to develop true general purpose intelligent machines is a fascinating prospect. Even some of the oldest "AI" examples are pretty mind-boggling.

http://en.wikipedia.org/wiki/SHRDLU#Excerpt

Quote:

Here is an extract from a famous demonstration of SHRDLU (with messages converted from their original upper case for ease of reading):

Person: Pick up a big red block.
Computer: OK.
Person: Grasp the pyramid.
Computer: I don't understand which pyramid you mean.
Person (changing their mind): Find a block which is taller than the one you are holding and put it into the box.
Computer: By "it", I assume you mean the block which is taller than the one I am holding.
Computer: OK.
Person: What does the box contain?
Computer: The blue pyramid and the blue block.
Person: What is the pyramid supported by?
Computer: The box.
Person: How many blocks are not in the box?
Computer: Four of them.
Person: Is at least one of them narrower than the one which I told you to pick up?
Computer: Yes, the red cube. etc.
Tippia
Sunshine and Lollipops
#55 - 2012-06-27 13:48:43 UTC
Poetic Stanziel wrote:
Tippia wrote:
Also, Scheme > all.
Because matching thousands of parens is awesome. (See also LISP.)
Meh. The coding environment will do that for you.

The really awesome part is figuring out which one of those thousand parentheses is misplaced to cause the bug you're experiencing… Blink
Alrione
Black Lagoon Inc.
#56 - 2012-06-27 14:09:50 UTC
If you want to stay at hobbyist level starting with java/python is fine.
However if you want to become serious developer dive straight into C++.

Problem with transitioning off java to C++ is whole bunch of bad habbits, also some people mentioned lack of garbage colelction as some sort of difficult/negative thing about language.
Well thats frankly rubbish, in majority of cases you don't need to do anything special to avoid leaking memory. As long as you learn to write neat c++ code with use of stl/boost y
CCP Guard
C C P
C C P Alliance
#57 - 2012-06-27 14:12:02 UTC
In this post I am going to tell you all I know about programming...so bear with me please!

It's Python.

CCP Guard | EVE Community Developer | @CCP_Guard

Watooshi Makoochji
Republic University
Minmatar Republic
#58 - 2012-06-27 14:17:47 UTC
Alrione wrote:
If you want to stay at hobbyist level starting with java/python is fine.
However if you want to become serious developer dive straight into C++.

Problem with transitioning off java to C++ is whole bunch of bad habbits, also some people mentioned lack of garbage colelction as some sort of difficult/negative thing about language.
Well thats frankly rubbish, in majority of cases you don't need to do anything special to avoid leaking memory. As long as you learn to write neat c++ code with use of stl/boost y



Hmmmm. Have been looking at some C++ and frankly it would appear there is a LOT of assumed knowledge just to start with learning that language.

Keep in mind, I have basically ZERO computer science training Blink

Don't you think it might be better to start with something a little more approachable like Java or Python?

Actually though, OST does list an Introduction to C Programming in their set of three courese "For the Complete I.T. Beginner."

The other two being

Linux/Unix 1: The Unix file system

Introduction to Object-Oriented Programming

Like I said, I'm starting on a long-term track here, so learning a variety of stuff in the long-run is the plan. But since how I start could make a bit of difference I'd like that first choice to be a smart one.
Watooshi Makoochji
Republic University
Minmatar Republic
#59 - 2012-06-27 14:19:12 UTC  |  Edited by: Watooshi Makoochji
:) ! Well THAT is encouraging!

CCP Guard wrote:
In this post I am going to tell you all I know about programming...so bear with me please!

It's Python.


I was initially very much leaning toward Python to start for a couple reasons:

1. it sounds very approachable
2. it is very general purpose
3 it is open-source and has a vibrant community
4. it is used in some of my favorite games, for which I could see myself getting some initial 'practical' experience by making some user mods (e.g., Mount&Blade Warband)
Bootleg Jack
ACME Mineral and Gas
#60 - 2012-06-27 14:20:49 UTC
CCP Guard wrote:
In this post I am going to tell you all I know about programming...so bear with me please!

It's Python.


Explains alot.

I'm an American, English is my second language...