Page 1 of 2

Good entry-level client side language?

Posted: Fri Jun 23, 2006 1:13 am
by s.dot
I've been stressed out lately with all of the work I've been doing. I thought i'd like to try something client-side for a break from the php programming.

You know, so I can make standalone exes. I run windows, so I was thinking VB might be a good choice, since i have no need to run the program on anything other than windows.

I've tried java before. but it was a while ago so im sure i'd be more understanding to it now.

I've also had a look at C, but could never find a compiler.

What's a good language to start with?

Posted: Fri Jun 23, 2006 1:23 am
by feyd
Back away from the VB train. It goes no where.

C# and C are both fairly good languages to "start" with. You've already got your feet wet a bit coming from PHP, so they should be fairly simple to pick up. As for compilers, there are many. The only one I recommend is Microsoft's own Visual Studio. There's also GCC among others for feature rich, such'n'such (open source too.)

You may want to play with Delphi as well, which actually has compilers for Linux and OS X (that I remember.) I don't know of any free compilers for it however. I ever looked for them.

Posted: Fri Jun 23, 2006 3:09 am
by s.dot
What would be the difference between the C variants? I s'pose that's a question for research, rather than forums though.

Posted: Fri Jun 23, 2006 9:53 am
by feyd
C# is the new kid on the block. It's a massive update over C++ adding a lot of new-ish ideas to the mix. There are a total of 80 keywords (last I read) and it's very object oriented. If you want to play with .Net or want to do more rapid building of things, C# is definitely a route to look at. C++ has a .Net assembly as well though, so you can use that route with managed code.

Posted: Fri Jun 23, 2006 12:11 pm
by Benjamin
How does the performance of C# vs C++ compare? C# isn't platform independent is it?

Posted: Fri Jun 23, 2006 12:19 pm
by feyd
Well.. C# has Mono on other platforms outside of Windows.. so it's possible for .Net stuff to run on other platforms, and it was engineered to allow for it, the problem is, it's still a pretty new language (being only a couple years old) coupled with a rather new platform for the code to use, it will take some time to adopt and adapt. Comparing C# to managed C++, they are virtually the same.

Comparing C# to standard C++, C++ will often win in shear performance. C# will win in ease of development, more often than not (depending on what you're building.) C# is intended for building GUI applications, as long as you're building such applications with C++ as well, I believe, C++ should run faster, but only marginally. However the performance of C++ will likely drop in later versions of Windows as everything moves to .Net based systems and they are optimized while older style applications will come more and more "emulated."

Posted: Fri Jun 23, 2006 12:31 pm
by Gambler
C# is the new kid on the block. It's a massive update over C++
C# is more like Microsoft's Java, than C++ update.
You may want to play with Delphi as well, which actually has compilers for Linux and OS X
Last time I checked, Kylix was pretty dead. Object Pascal or something along those lines would be more appropriate for Linux.

...

Try D:
http://www.digitalmars.com/d/index.html
That's the future of low-level languages (I hope).

Posted: Fri Jun 23, 2006 12:46 pm
by Benjamin
Thanks for the info feyd.
feyd wrote:However the performance of C++ will likely drop in later versions of Windows as everything moves to .Net based systems and they are optimized while older style applications will come more and more "emulated."
[rant]
You have got to be kidding. So Windows is going to emulate C++ binaries, which is closer to machine code then anything except assembly? Is there something wrong with this picture? Linus said, "I'm not out to destroy Microsoft, it's just going to be an unfortunate side effect". I think MS is destroying itself.
[/rant]

Posted: Sat Jun 24, 2006 2:20 am
by timvw
There used to be lots of articles on the .Net framework but i can't find them anymore apart from this article: http://en.wikipedia.org/wiki/.NET_Framework.

Since all .Net compilers (eg: C++, C#, Visual Basic.Net) generate code for the same virtual machine their is practically no difference in performance between the language that was used.. (Admitted, a C++ application that is compiled to win32 instead of .Net will probably run faster.. In my experience the startup of a .Net application is slower, but once the application is running the differences are pretty small...

I'd say that the last 10 (and the next X) years all have been about virtualization.. With the definition of a virtual computer and it's instruction we get another layer which should make it easier to build 'write once, debug everywhere' programs ;)

Posted: Sat Jun 24, 2006 2:39 am
by _ThndR
You should definately try C#.
I once learnt some C and wanted to go to some GUI's, but GUI's in C seemed to be a pain in the ass (imo). So... I wanted to try something else. I asked a couple of guys, and a lot of them strongly recommended C# to start with. I downloaded Microsoft Visual C# Express Edition, which is free, and got myself a nice book. After reading a short piece of the book (introduction to object-oriented programming) I simply started off coding, and it's pretty easy actually.

If you don't mind that the apps can only be run in Windows (I know Mono is coming up), you really should give C# a try.

Like said before, C# is like a combination of C++ and Java.

Posted: Sat Jun 24, 2006 9:22 am
by feyd
Technically, C# is C++, Java and Delphi. It draws a lot from each.

Re: Good entry-level client side language?

Posted: Sat Jun 24, 2006 11:16 am
by alex.barylski
You know, so I can make standalone exes. I run windows, so I was thinking VB might be a good choice, since i have no need to run the program on anything other than windows
If you want results fairly quickly and you know the BASIC syntax, I would suggest looking into http://realbasic.com/

I played with it a while back when it first came out...it's cool because it compiles to native machine code and for multiple platforms (Mac, Windows when I last played and now I think Linux). VB compiled to a intermediate called p-code and is why it has such a bad rap. VB programs ran like garbage.

RealBasic looks pretty solid now...and is likely your best choice if you want results now...

C# is a good choice too...but it's likely more complicated than RealBasic...as already said it's very similiar to Java and therefore the learning curve is much larger than RealBasic...

http://www.codeproject.com/csharp/quickcsharp.asp

I've never used C# as for the time being C++/MFC is my choice...I can tell you this from experience...

C++ is awesome...but learning it well, takes serious time...pointers may confuse you...and then all of a sudden the idea *clicks* but concept and usage are two very different things...

Programming basic applications in the console, like generating fibonacci numbers is trivial and well documented and doesn't *require* the use of pointers...

Programming anything useful, likely will require the use of a framework like that of MFC...when you introduce this into the mix you've just complicated things ten fold...

Mastering the Windows API, understanding how the system manages it's sub-systems and the sophisticated messaging system and constantly changing new technologies, like COM and so on...make learning Windows development very complex, when using C++

My point about pointers, is that, they may make sense but are still difficult to use properly and when used incorrectly, lead to interesting crashes or bugs which are very difficult to find...

C++ is cool...and is still the most widely used programming language for Windows application development...but it's being phased out...of general application development anyways...C will likely exist as a systems/kernel language for quite some time...

Therefore, if you really hate the idea of using RealBasic, perhaps C# is your choice...

RealBasic/VB and so on...are more than just programming languages...their RAD (rapid application development) tools...they offer click and drag GUI builders which makes the process of designing *Window'ed* applications a breeze when compared to manually when doing things in C++/MFC

Not sure about C# but I believe the idea there was to include a Window builder as well, but this will likely depend on the IDE you choose - for obvious reasons M$ is likely your best choice...
I've also had a look at C, but could never find a compiler
You didn't look very hard then did you :P

http://www.thefreecountry.com/compilers/cpp.shtml
What's a good language to start with?
Depends what your goals are...

If you want quick results, which are decent, I suggest RealBasic...if you want to spend the next 1-2 years learning C++/MFC and another few years getting good at it...go for C++

C# will likely cut back the learning curve...and will look best on your future resume...as it's not going anywhere...M$ have invested waaaay to much for them to scrap the project...

It will take you more time to learn that than RealBasic but the long term payoff might be justified???

I always promote C++ as it's a very cool language...arguably the best there is...as well as arguably makes the best developers...the coolest code I have ever seen has been done in C++...

Cheers :)

Posted: Sat Jun 24, 2006 1:00 pm
by Gambler
C++ is cool...
ะก++ is not cool exactly for the reasons you stated as it's advantages. It's unnecessarily complex, especially when you work with templates. COM is a headache. You need craploads of documentation from different sources, and MSDN sometimes doesn't give you necessary info. To find info about something basic (like compiling DLLs with GCC) you need to search the whole internet, then try out all given solutions until one of them works.

And before even thinking about system programming you need to read loads of advanced literature. Jeffrey Richter would be a good start.

C# is much more suited for entry-level language. (And Java too.)

Posted: Sat Jun 24, 2006 7:17 pm
by alex.barylski
Didn't I say it was complex???

I don't think I've ever said learning C++ was a walk in the park :P

Yes it's difficult...but that's what makes it cool...that sense of absolute control and power

Posted: Sat Jun 24, 2006 7:54 pm
by Gambler
Yes it's difficult...but that's what makes it cool...that sense of absolute control and power
Just out of curiocity, what's your background in C/C++?