Click here to Skip to main content
15,921,941 members
Please Sign up or sign in to vote.
4.00/5 (1 vote)
See more:
I have a quite advanced VB.NET word processor. I'm looking at other languages and they seem faster and better. Two questions.

First: Which ones should I use? I would like cross-platform.
Second: Which one do you recommend for a VB.NET developer which has too much free time?
Posted

Depends on what you mean by cross-platform.

There are C++ compilers for just about any platform/processor you could imagine, and the C-runtime and/or Boost are available for most platforms.

If you are interested in embedded system and hardware level controls then C or C++ is the way to go. I also highly recommend C/C++ if you want to really learn what's happening with memory and hardware. Warning: if you decide on C++, then make sure you really understand pointers (just plain old C pointers) before you graduate to anything complicated, then understand the difference between allocating things on the heap or on the stack and when you would do which. After that, have fun.

If by cross-platform you mean you want to compile it once and run it several places, then Java might be a good choice. The JVM is available for a lot of systems (more than .NET).

And then there's the whole web eco-system. If you are interested in client side (browser) programming, then start with HTML / CSS / Javascript. Beyond that, somebody else would have to give you advice.

If those all seem like too much of a leap, then start with C#, the framework and libraries will be familiar to you from VB.NET and you'll just be learning new syntax to start with.
 
Share this answer
 
Comments
Sergey Alexandrovich Kryukov 14-Jun-11 16:28pm    
Many good points, my 5. Please see my answer as well.
--SA
[no name] 14-Jun-11 17:42pm    
Thanks a lot. Looks like it's easier if I start with C#, and then I'll move slowly into the C++ bacon.
TRK3 14-Jun-11 18:01pm    
C is not the same as C# at all.

C came before C++ (http://en.wikipedia.org/wiki/C_(programming_language).)

It doesn't have any object oriented features. No classes, with member functions, inheritance, encapsulation, etc. No garbage collection. A very simple library. No GUI framework that's part of the language (although you'll find C GUI frameworks for most platforms [Win32 for windows]).

C is fairly close to the hardware, and C compilers exist for it for probably every processor / microcontroller in existence.

I recommend it if you want to do low level programming / hardware manipulation, or if you just want to understand what's really happening at the hardware level.

I don't recommend it for building User Interfaces.

If you want to target non-Windows platforms without having to learn much about them, then SAKryukov is recommending sticking with .NET and using Mono. Which is a good situation if that's your goal.

If you want to learn about other platforms besides .NET / Windows, then you are right, you want to pick something other than C#.
Sergey Alexandrovich Kryukov 14-Jun-11 22:41pm    
C++ is exactly as close to hardware as C; however, there are a number of limited-resource platforms where C is the only option (such as embedded).
--SA
Sergey Alexandrovich Kryukov 14-Jun-11 22:42pm    
As to C#, it only looks like C. C# is much closer to Delphi Pascal (its most direct predecessor) an Java.
--SA
You can keep using .NET languages if you use Mono. This is a multi-platform version of CLR, the multiplatform .NET. See http://en.wikipedia.org/wiki/Mono_(software)[^], http://www.mono-project.com/[^].

The level of compatibility is amazing. .NET libraries standardized under ECMA and ISO are all supported, but some of non-standard libraries, too, such as Forms.

I run my .NET applications on Linux without recompilation, even Forms applications.

I would recommend using C# and/or C++/CLI.

—SA
 
Share this answer
 
Comments
TRK3 14-Jun-11 16:45pm    
I don't have any experience with Mono. It's good to know that it's compatibility is that good. Yeah, if he wants to get something done and wants to target Windows/Linux/Mac then C# would be the best choice.

If he's really just looking to broaden his knowledge and horizons then he should go for something completely different. In which case I'd say C or C++ to introduce him to the hardware, then something esoteric like F# or Scheme to get him thinking in completely new ways.
Sergey Alexandrovich Kryukov 14-Jun-11 16:53pm    
More than that, there are several project (some 3 by Microsoft and 2 third-party) of OS based totally on CLR, right on top of HAL). Having managed-only fully compatible with different computer hardware OS is very attractive, as all legacy is removed. Microsoft Singularity OS demonstrated good performance.
F# and Scheme are not really esoteric...
--SA
TRK3 14-Jun-11 17:05pm    
Esoteric maybe wasn't the right word. Although they aren't quite mainstream either. My main reason for recommending them is to get him thinking in completely new ways. (Although I think I could write FORTRAN in any language...)
Sergey Alexandrovich Kryukov 14-Jun-11 17:27pm    
...some languages prevent turning them into FORTRAN very well :-)
--SA
[no name] 14-Jun-11 17:40pm    
Mono is far from stable and things keep breaking, but good point.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900