Hello again,
I am currently a member in alot of arabic programming forums. I have noticed that the frequently asked questions (FAQs) by members are more concerned with choosing the best programming language to learn. Questions like is C++ the best programming language? or should i use Delphi or the .NET framework or even Java for thier VCL, frameworks … etc?
Well, this is not what matters!
What matters is a group of features in the language that enable you to accomplish the goal that you are going after.
I will Briefly talk about what comes up to my mind and try to be as clear as possible.
Choosing the best programming language as far as i am concered depends on the type of project you are going to be developing.
Is the application open source?
Will the application Evolve in time?
Will it be cross-platform or will it run only on windows?
What is the timeline or schedule that you have for this project?
All of these questions may affect your choice of programming language as well as some other things.
These factors are mostly solved by the programming language because when we talk about development it is not about writing code alone but several other things.
Let’s get to the point!
One of the things that affect your choice of the programming language is readability. It is a feature in the language syntax that enable the code that you write to be fully readable by human. Some languages do not have this feature, as in the code written in that language is not readable. But what if you had to work in teams or make your application open source? this answers the first question opposed. Publishing the source code for an unreadable program will not be a benefit because most developers will not be interest.
Portability, Which the language ability to run your applications on differant platforms. Here platforms is meant for Operating Systems like Widows, Linux and Mac. Languages like .NET languages, Delphi cannot run on Linux and Mac because as Microsoft and Borland(Recently moved to CodeGear) are targeting MS Windows operating system to run the applications created using these languages on. Yes there are projects like the Mono project that runs .NET applications on Linux and Kylix(Borland Delphi for Linux) but Kylix is not supported by Borland anymore. Languages like (C,C++),PHP, Ruby, Java are cross-platform meanining that applications created using these languages can run on almost any platform.
Productivity, is the most important in my opinion. Because a programming language has to make the programmer productive by providing a set of tools or IDEs or features in the language that requires less time to code using any other language. C++ for example when developing a Windows application requires about 2 pages of code to create an empty window, that is, using Win32 API while Visual Basic 6.0 provides the ability for the software developer to drag and drop components on the form. I am not saying the VB6 is better than C++ but it is a more productive language. A simple Hello world application requires 1 minute of development in VB6 while it takes about 5 Minutes in C++. A couple of more minutes wont heart but what if you were working on a large-scale project?
In addition to other things that affect you choice but i think i summerized the most important factors.
For me as a software developer i like C++,Java but i dont really use them because when developing a software targeted for Microsoft Windows i dont think Java would give me the best solution althought it’s framework is great but the execution of java applications is slow compared to C#.NET. As for C++ is quite fast that’s why operating systems are developed using C and C++ but as i mentioned before it is not productive. Thanks to Microsoft VS2005 provided a new version of C++.NET which uses the .NET framework and simple drag and drop components.
I gained the desire to learn more about .NET development because i think that a language has been built for Windows will run alot better on Windows than any other language like Java. I do use PHP for developing website but i also like ASP.NET as it’s new method in programming will affect how developers look at Web Development.
I hope this article has been of benefit to all who read it and stay tuned for more about Development and Developers
Best Regards,
Rakan
Filed under: General programming
ahaa.. here u mentioned Mono.. nice I should be reading the whole blog next time..