I have a computer with 128 MB's of RAM (I said it was a piece of crap). It runs Windows XP Professional (slugishly). I don't have to use this computer except at night time when I'm supposed to be in bed, around 1:00 - 4:00 AM. So what is the best programming language / compiler to use? Which is the least RAM dependent.
I've had enough fun programming on my old 64kb Apple II machine. I actually learned to program when games used to crash and throw you into the basic prompt with the source code (I'm talking early 80s here).
I also built huge programs at Intel on a computer with 128MBs.
I really don't understand this question. Most people have programmed on much weaker computers years ago. Obviously there's a limit to what you could write. It's not going to be the next Halo.
The only limitation you would probably have is in using some IDEs. For example, I wouldn't use Eclipse. However, you could probably run earlier Visual Studios (e.g., Visual C++ 5), and certainly DOS based compilers like good old Borland Turbo C++.
This will depend on your target application really. If you are building small programs in order to learn a programming language it doesn't really matter how "sucky" your development machine is.
Um... are you planning to do anything with it, say use it as a learning tool?
If your going to install an IDE, install Visual Studio 6 or Visual Basic 6... That will probably give you the most bang for you buck..
You could try installing IIS, but that will add overhead on top of any web language you will end up using.
You could try install Visual Studio .NET Express editions. Can't say how well it would work or even if it meets the min reqs
Edit: Umm... nope, you need at least 192MB to install the Express SKUs, you could try, but it might not work.
If you want to learn C, then install VC++ 6.0 if you have it.
As Uri stated, your biggest problem will be IDEs. If you use Visual Studio 6.0 or before, you should be fine though. Also, any of the scripting based languages (PHP, Python, etc.) will run fine (if you're just dinking around at least) on a machine of that speed.
If you need something that performs well, straight C on an old compiler is your best bet.
Languages are not dependent on memory, though any sort of managed language such as C#, Java, etc, will have to load a runtime / virtual machine. C / C++ is about as close to the hardware as you'll get, and you get to manage all the memory usage yourself.
You can get the Microsoft command line compilers for free by downloading the Win32 SDK, and of course gcc comes with Linux. Then you use your favorite editor (vi / emacs / notepad / notepad++ / notepad2 / etc) to write the code. I wouldn't bother with Visual Studio.
Really it depends what sort of program you want to build.
I'd go with any language that has a command-line compiler and doesn't require an IDE.
Straight C with GCC under mingw is more or less on the nose.
The question is not which language.
I think it's more: which IDE I can use with this.
I would use C with gcc/Notepad++ :)
An old version of Delphi of course. I've used version 3 on machines with 32 MB, so 128 is plenty. And the IDE does not suck. Using c or c++ compiles much slower, and the IDEs are not as good
MinGW/MSYS should run comfortably in 128MB, allowing C/C++ development. The command-line based MSYS interface (basically a unix shell environment) will be much less sensitive to latency than a GUI, so it will be more tolerant of swapping. Also, most scripting languages such as Perl or Python will work fine in 128MB. Check out www.activestate.com for a source of good windows distributions of Python, Perl and Tcl/Tk.
I would use notepad++ (or similar) to code in and then a command line compiler such as csc in the .NET SDK. If the machine is XP then a .NET language such as VB or C# makes sense to me. It's all free and your half way there already!
I'd stick an extra 128Mb of RAM in it - you might be suprised at the difference it makes. My own development machine is a 9 year old Sony laptop with 256Mb and a 900Mhz processor running Win2K. With it I can run a couple of the Code::Blocks C++ IDE instances, SQL Server and Apache, simultaneously, without any real problems.
Install Linux, and use a very lightweight window manager like TWM. it will speed up that system greatly.
Then you can choose from a number of modern languages, from C++ to Objective-C or even Java if you wish with so much system overhead out of the way.
To start with you might want to consider one of the scripting languages like Perl or PHP, and do some web stuff.
If you can't change the OS the system uses then look for Cygwin, and use that system to develop with. No way a modern IDE is going to work well there, use Emacs or VI (Emacs is easier).
Edit: Instead of installing a new OS on the computer, get a USB stick and install this to boot from:
http://www.downloadtube.com/blog/2009/03/11/tiny-core-linux-has-just-10-mb-in-size/
Can't remember if a computer of the era you have can book from USB though.
Back in 2000 (during my nightshifts) I taught myself .NET/C# (beta days!) by building console apps on a Dell laptop with 128MB RAM and the slowest hard disk ever. It did teach me how to use all the command line stuff though.
A machine with 128MB of RAM isn't that limiting, you can chuck perl, python, ruby and all sorts of good stuff on your PC to get you by. Hell, even the Java command line bits should run just fine. In fact we were building Java/Swing apps on machines with 128MB back in 1998/1999.
HTH
Kev
I would first try to get a more lightweight operating system, something like FreeBSD or GNU/Linux with a lean window manager (e.g. fluxbox). These also happen to hold much more "power" as a programming environment per se.
The next step is a good but lean IDE, and I think that you can't go wrong with emacs, which also supports a wide variety of languages. Vim is also a good option.
Finally, I would use a language that allows incremental development on a REPL. This keeps compiling times to a minimum, so that you don't notice the limited resources so much. Plus, this is the best way to code, anyway.
Bah... you're all trying to find a way of running huge fancy bloated languages like C on an underpowered machine. You need to get back to basics!
Use NASM + your favorite text editor. No need to restrict yourself to DOS assembly coding - you can write Win32 apps in assembly as well. There's nothing like writing a full Windows app that fits within a 4k block. It certainly cuts down on application load-times.
If you think about it, most languages have historically run on computers with many fewer resources than what you have on that computer. Lisp was invented 50 years ago. Smalltalk in the 70s. Basic ran on the Commodore 64. C/C++ run on tiny embedded processors. Perl ran on pretty small machines at the beginning of the Internet. In short, it's not the language you need to worry about.
What you need is a low-friction environment to develop in. You don't want to use a heavyweight IDE, especially not something like Eclipse. Your best bet is something with a command-line compiler and a low-resource editor like Vim.
This is actually part of my job daily, we use virtual machines and simulators for development, most of them have 64 - 128 MB of memory available. I use nano for editing in those cases, it does a very good job. I use mostly C, sometimes I must make something portable between various operating systems (i.e. Linux/Windows).
This is a good question, as appliances and embedded solutions become more and more popular, its a lot like going back in time to when a machine with 64 MB of RAM was the envy of all your friends.
The language that you use does make some difference, you might need to save the overhead of an interpreted language depending on what you're doing. In your case, however, I don't think its much of an issue.
I'll +1 GCC+MinGW, but I also wanted to suggest FASM: http://flatassembler.net/
As both a language and IDE, it's tiny. And free. Works in both Linux and Windows, too. I'd definitely recommend it for someone who wants to learn about computers and programming on an antique machine.
Why so worried?
I finished my final exam on University using only old Pentium II 300 Mhz with only 64Mb RAM and 4GB HDD...
I used Windows 2000 Pro as my environment at that time and used Delphi 7 (even I tried Turbo Delphi 2006, but the .NET crap make it slow) and Visual Basic 6 as my main desktop programming language. For web development, I used PHP.
My "ancient" PC ran happily until it was time to compile (btw it didn't take that long - approximately 3-10 minutes depending program size). So usually I rechecked my code before each compile/debugging session.
Now it is used by my senior high school sister for Word and Excel. LOL.
So pick either Delphi 6-7 or Visual Basic 6 or if you want more power go for C++.
Another pretty light weight A free C++ IDE from bloodshed I have used for many years on a pentium 3 with 128mb RAM and Windows XP and it works pretty good.
Forth was designed to run on much lower-end machines, compiling and executing quickly and supporting rapid development. It's got a freewheeling programming style that's fun, and you'll get exposed to something new.