473,761 Members | 2,384 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Choosing a new language

Hi.

First let me start by saying, please don't let this become a
flame-thing.

Second, I need some advice.

I am a 35 year old programmer, who program in C/C++, PHP and Bourne
Shell almost daily.

I am currently going to start focusing on becoming more skilled at a
few key languages, rather than knowing many (which I do on a more
superficial level).

My key languages are C, PHP and SH (Bourne Shell), and I have stopped
using C++ because I find that its a C-hack rather than a good design
choice.

I have made the following decision:

To study Ada and use it instead of C++. I come from a Pascal background
and I love the Ada syntax and wide area of usage. I am also attracted
to Ada because of its usage in the industry.

Now I have three more languages that I am very attracted to, but I
prefer to focus on just one of them:

Python, Haskell and Lisp.

I have been doing some reading and some coding, and I am mainly
attracted towards Lisp because of its ability to "fix a
running program".

But I find that Haskell is a more powerful language. Yet again Python
has a huge user base and many libraries, and it is implemented
everywhere, where Haskell and Lisp on the other hand hasn't.

I like the syntax of all three, and I have gotten beyond the
"confusion" stage of Lisp parentheses, so they don't bother me at all.

I need advice from people who have been coding in all three, and who
can share some views and experiences.

Please, if you don't know ALL three by deep experience, don't respond to
this thread!

Thanks and best regards!

Rico.
Dec 28 '07
28 1917
It's not easy to answer this question, and the choice of language is
quite influenced by what's your use of it.

Python/Ruby and Java (and C#, sometimes, on Windows) are often a safe
bet today (for work purposes too), they have lot of libraries and they
are efficient enough for their purposes. But despite being flexible
those two pairs of languages have different purposes.

Haskell is a good language, it has much less libraries and today its
speed is comparable to Python/Psyco one, it may require some time to
adapt your mind tuned to older language to its nearly-pure functional
style. Today I don't think it's a language for newbies. In the future
maybe it will become more useful for work too.

Bye,
bearophile
Dec 29 '07 #11
George Neuner <gneuner2/@/comcast.netwrit es:
On Fri, 28 Dec 2007 12:54:57 -0800, John Nagle <na***@animats. com>
wrote:
> Actually, the ability to "fix a running program" [in Lisp] isn't
that useful in real life. It's more cool than useful. Editing a
program from a break was more important back when computers were slower
and just rerunning from the beginning was expensive.

Speak for yourself.

The ability to patch a running program is very useful for certain
types of embedded applications. Not every program having high
availability requirements can be restarted quickly, or can be
implemented reasonably using multiple servers or processes to allow
rolling restarts.
And in applications like IDEs, dynamically loaded functions are very
important. Improving Emacs is vastly easier because Emacs Lisp is
interpreted. You can make a small change to a function and quickly
determine its effect. That's one reason (among many others :) I have
not switched to GPS (which is written in Ada).

--
-- Stephe
Dec 29 '07 #12
2007-12-29

Rico Secada wrote: $B!V(B... Now I have three more languages that I am very
attracted to, but I prefer to focus on just one of them: Python,
Haskell and Lisp. ... I need advice from people who have been coding
in all three, and who can share some views and experiences.$B !W(B

I have been coding all 2, namely Lisp and Python, while still dragging
my ass about learning Haskell.

as others have said, choosing a language for practical programing
largely depends on your purpose. (of course you knew that) Web
programing? PHP and Javascript and HTML/CSS and SQL/db you need. Unix
sys admin? Knowing Bash and Perl is in your favor considering the
states of the affairs. You want to do language research and AI? Lisp
and Haskell etc, of course. You want the ultimate text processor?
Emacs lisp. (beats Perl like you would beat your neighbor's child) You
want build light-sabers and spaceships in the Second Life virtual
world? Linden Script Language, is inevitable. You want to write device
drivers for Operating systems? Enduring the torture of C will benefit
you in long run.

Now, suppose your fancy brain told you that you want one to rule them
all for your kingdom of pure hobby, then the choices runs down to your
taste of course. You could, for example, imagine yourself to be the
king of bits, and enrapture yourself for the persuit to be the master
of all assembly languages. On the other hand, if you imagine to be the
supreme intellilect who wants the most high-level, expessive language
of all, with one line equals to one billion of a assembly, one million
of java, one thousand of lisp, there's Mathematica you can try. (with
few thousand dollars in your pocket to be able to begin this journey)

Sure, but you want us to comment on Python and Lisp and Haskell sans
scenarios.

In that case, my opinion is that Python sucks ass, Lisp and Haskell
rules.

Let me tell you, since you know PHP, that PHP and Perl are practically
identical in their high-levelness or expressiveness or field of
application (and syntax), and, Perl and Python are pretty much the
same except their syntax. In general, PHP, Perl, Python are the same.

(i have over years of industrial experienc with Perl and PHP since
1997, and just personal dabbling with Python since 2005. See my
tutorials here:

$B!z(B Perl and Python tutorial
http://xahlee.org/perl-python/index.html

$B!z(B PHP tutorial (meager, only started writing it this month)
http://xahlee.org/php/index.html

$B!z(B Emacs Lisp tutorial
http://xahlee.org/emacs/elisp.html

$B!z(B Linden Scripting Language tutorial (Second Life)
http://xahlee.org/sl/ls.html

O, and a Java tutorial
$B!z(B Java Tutorial
http://xahlee.org/java-a-day/java.html

)

Xah
xa*@xahlee.org
$B-t(B http://xahlee.org/

----------------------------------

Rico Secada wrote:
Hi.

First let me start by saying, please don't let this become a
flame-thing.

Second, I need some advice.

I am a 35 year old programmer, who program in C/C++, PHP and Bourne
Shell almost daily.

I am currently going to start focusing on becoming more skilled at a
few key languages, rather than knowing many (which I do on a more
superficial level).

My key languages are C, PHP and SH (Bourne Shell), and I have stopped
using C++ because I find that its a C-hack rather than a good design
choice.

I have made the following decision:

To study Ada and use it instead of C++. I come from a Pascal
background
and I love the Ada syntax and wide area of usage. I am also attracted
to Ada because of its usage in the industry.

Now I have three more languages that I am very attracted to, but I
prefer to focus on just one of them:

Python, Haskell and Lisp.

I have been doing some reading and some coding, and I am mainly
attracted towards Lisp because of its ability to "fix a
running program".

But I find that Haskell is a more powerful language. Yet again Python
has a huge user base and many libraries, and it is implemented
everywhere, where Haskell and Lisp on the other hand hasn't.

I like the syntax of all three, and I have gotten beyond the
"confusion" stage of Lisp parentheses, so they don't bother me at all.

I need advice from people who have been coding in all three, and who
can share some views and experiences.

Please, if you don't know ALL three by deep experience, don't respond
to
this thread!

Thanks and best regards!

Rico.

Dec 29 '07 #13
Python, Haskell and Lisp.
>
I have been doing some reading and some coding, and I am mainly
attracted towards Lisp because of its ability to "fix a
running program".
Why not Erlang then?
http://www.erlang.org
Dec 29 '07 #14
On Dec 29, 3:11*pm, Achim Schneider <bars...@web.de wrote:
[...]
Lisp throws lambda calculus right into your face, which is a good
thing. Scheme might be the better choice, it's lexically scoped:http://mitpress.mit.edu/sicp/
There are also video lectures with people with funny hats speaking wise
words.
Common Lisp has lexical scoping as well (although defvar allows you to
declare dynamically scoped variables).

--
Arnaud

Dec 29 '07 #15
Paul Rubin schrieb:
Joachim Durchholz <jo@durchholz.o rgwrites:
>Indeed. An additional case is interactive applications where setting
up the situation to be tested requires several time-consuming steps.

At least for web development, there are a lot of automated tools that
mimic user input, just for this purpose.
Yes, but it still takes time to run to the point you want.
Plus you'd need to integrate such a tool with the debugger.
Plus you'd need to record the user actions, save them somewhere, and
recall them.

None of that is rocket science, of course, but I have yet to see such a
thing. (It would be nice to have it though.)

However, for web applications, I found a far easier variant: I just
reload the page being debugged. (I have to make sure that the backend is
in the same state when reloading, but that's usually easy to accomplish.)
So web pages are one area where code modification during debugging is
less important.

Desktop programs with a large internal state are an entirely different
kettle of fish, of course.

Regards,
Jo
Dec 29 '07 #16
På Sat, 29 Dec 2007 19:16:09 +0100, skrev Joachim Durchholz
<jo@durchholz.o rg>:

However, for web applications, I found a far easier variant: I just
reload the page being debugged. (I have to make sure that the backend is
in the same state when reloading, but that's usually easy to accomplish.)
So web pages are one area where code modification during debugging is
less important.
Haveyou looked at selenium?

I quote:

Selenium is a test tool for web applications. Selenium tests run directly
in a browser, just as real users do. And they run in Internet Explorer,
Mozilla and Firefox on Windows, Linux, and Macintosh. No other test tool
covers such a wide array of platforms.
Browser compatibility testing. Test your application to see if it works
correctly on different browsers and operating systems. The same script can
run on any Selenium platform.
System functional testing. Create regression tests to verify application
functionality and user acceptance.

There is also a Lisp interface cl-selesium though I can't find the code on
the net now.

--------------
John Thingstad
Dec 29 '07 #17
På Sat, 29 Dec 2007 18:58:30 +0100, skrev Arnaud Delobelle
<ar*****@google mail.com>:
On Dec 29, 3:11*pm, Achim Schneider <bars...@web.de wrote:
[...]
>Lisp throws lambda calculus right into your face, which is a good
thing. Scheme might be the better choice, it's lexically
scoped:http://mitpress.mit.edu/sicp/
There are also video lectures with people with funny hats speaking wise
words.

Common Lisp has lexical scoping as well (although defvar allows you to
declare dynamically scoped variables).

--
Arnaud
More precisely defvar, defparameter, progv and (declare (special var))
create variables with dynamic scope.
let and let* do as you said use a lexical scope. (unless you use a declare
as above)
--------------
John Thingstad
Dec 29 '07 #18
>>>>"Brad" == byte8bits <by*******@gmai l.comwrites:

BradBest of luck in finding skilled, affordable Ada programmers
Bradoutside of major cities.

Which is why it may be a good idea to learn it and earn a lot of $$$ :)
Dec 29 '07 #19
On Sat, 29 Dec 2007 23:56:12 +0100
Samuel Tardieu <sa*@rfc1149.ne twrote:
>>>"Brad" == byte8bits <by*******@gmai l.comwrites:

BradBest of luck in finding skilled, affordable Ada programmers
Bradoutside of major cities.

Which is why it may be a good idea to learn it and earn a lot of $$
$ :)
I have yet to see a job offering in which Ada is wanted, atleast in my
country there is none.
Dec 30 '07 #20

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

12
1945
by: Deke | last post by:
I will be embarking on a large web project. I am still researching as to which language use - PHP or Perl. Can someone clear up some of the bad publicity with PHP in the links below? They are very interestiing points. Are these points moot in PHP5? http://www.bitstorm.org/edwin/en/php-sucks/ http://www.ukuug.org/events/linux2002/papers/html/php/index.html http://www.webkreator.com/php/community/php-love-and-hate.html
42
4108
by: Fred Ma | last post by:
Hello, This is not a troll posting, and I've refrained from asking because I've seen similar threads get all nitter-nattery. But I really want to make a decision on how best to invest my time. I'm not interested on which language is better in *general*, just for my purpose. My area of research is in CAD algorithms, and I'm sensing the need to resort to something more expedient than C++, bash scripting, or sed scripting.
22
3394
by: Vincent | last post by:
I would like to develop a site that should be available in several languages, say English, French and German. My question is: how can I suggest browsers of visitors to display the correct language depending on their preferences ? Let me explain this more clearly: in many browsers, you are given the possibility to choose your preferred language: fr, en, de, etc. Typically, in Mozilla, this option is detailed as follows: "Web pages are...
15
4300
by: Birahim FALL | last post by:
Hi, I'm very fresh to PostgreSQL, coming from Oracle. I want to developp web applications based on apache and postgresql. Is there an equivalent of OWA server (Oracle Web Application server) for postgresql. Shortly, OWA provides an apache module and a set of stored procedures/functions that generate html pages. A simple example could be the following procedure :
18
1344
by: murl | last post by:
I currently am programming apps using the vb.net language and haven't seen to many problems with it, since migrating from vb6. I love the enviornment, and the ease of use but wonder could my apps be better in c#? I have studied vb6, vb.net, and c++, and am currently learning alot about c#, and will be doing quite a few more applications in the future. Technically i could learn any programming language and stick with it, but is that one the...
10
1274
by: verukins | last post by:
Hi, Im a sysadmin/consultant around the microsoft suite of server products and do quite a bit of vbscripting to manipulate AD/Exchange. I'd like to start doing a little more, specifically turning the concept of my scripts into "richer" programs with a full GUI, database connectivity etc, rather than just a rag tag bunch of scripts. Im leaning towards a dotnet language, as all my programs will only be for windows machines any my...
38
2675
by: ifti_crazy | last post by:
I am VB6 programmer and wants to start new programming language but i am unable to deciced. i have read about Python, Ruby and Visual C++. but i want to go through with GUI based programming language like VB.net so will you please guide me which GUI based language has worth with complete OOPS Characteristics will wait for the answer
2
1150
by: | last post by:
The choice is made. The school where I teach has finally made its decision to teach Python first. For several years, we have been teaching Java first, and before that, C++. I introduced Python in one of my courses and got a lot of flak from some of the other faculty. I also introduced Ruby, and got even more flak. In my course, the students loved Python for its simplicity, its power, and its flexibility. It is clear that...
36
2590
by: Pat | last post by:
Hi, I've run into a strange problem, but one that seems like it might be fairly common. I have a single base class, from which several other classes are derived. To keep the example simple, the base class is "Animal" and the derived classes are "Cat," "Dog," and "Horse." The base class has a pure virtual method:
0
9522
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
10111
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
9948
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
8770
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7327
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6603
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5364
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3866
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
3
2738
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.