Jump to content

what's a good programming language to learn?


ecoli

Recommended Posts

 

What is the language that is best used in things like programming robots? Since that is my obsession I would like to learn it.

 

 

 

Thanks.

I do a lot of work with robotics in plant automation applications. The ones I deal with typically use ladder logic, ie Allen Bradley RS5000, and SLC 500. The other big names is Siemens. You would find SLC500 easier to learn.

 

Keep in mind many robotic applications also incorporate data collection, so having C++ is also a good skill. Some industrial applications uses SCADA.

(I've worked with well over 20 programming laquages, mostly relay/ladder logic, here is the thing. Choose one to learn. Once you can program in one laquage adapting to other lanquages is fairly straightforward.

If you want a cheap method to learn ladder logic, but a low cost zelio smart relay or for AB, a picosoft relay. It will include the programming cable and software. Cost of under 200.00. SLC500 is around 2k, controllogix is roughly 3 to 4 k.

(Wouldnt recommend the expensive ones to start)

Good textbook on Automation systems is

 

http://www.amazon.ca/Automating-Manufacturing-Systems-Plcs-Hugh/dp/0557344255

(Key note for robotics you will need a strong electrical, hydraulic and pneumatic understanding.) As well as calculus.

Link to comment
Share on other sites

  • 4 weeks later...

Here is a list of Top 10 Programming languages you should learn in 2015 you should to get a good Computer science salary after graduation. Hope these resources help you in getting what yo are looking for.

 

Regards

Abhishek

I would have to criticize the list as there are some languages on there that don't make sense for their position:

 

  1. Microsoft C#: While it is pretty good for developing Windows Applications, it can get pretty slow if you are developing a huge application, which is what is most likely going to occur in business. Many sidesteps have to be taken to account for this.
  2. PHP, I would think, would be higher in the list considering how web-server application development is becoming more important in the market of web development.

From there, I think web development languages are equal in importance. That's just my opinion though.

Link to comment
Share on other sites

I would have to criticize the list as there are some languages on there that don't make sense for their position:

  • Microsoft C#: While it is pretty good for developing Windows Applications, it can get pretty slow if you are developing a huge application, which is what is most likely going to occur in business. Many sidesteps have to be taken to account for this.
  • PHP, I would think, would be higher in the list considering how web-server application development is becoming more important in the market of web development.
From there, I think web development languages are equal in importance. That's just my opinion though.

 

I'd say that's all mostly wrong.
  • There's nothing in particular that makes C# "slow". Sure it compiles down to an intermediate language (similar to Java) but with modern CPU's and the JIT compiler, you'd hardly know it. Certainly if you want ultimate speed something like C++ compiled to native code (and recent moves in .Net mean you can get that for C# anyway) or even assembler, but there's nothing about C# that makes it slow for a "huge application" - that need for speed is more about the particular type of application, not the size. Something with gobs of calculations being done in a simulation, might be better in C++ (or whatever) than C#, e.g. while people were sad to see Microsoft drop support for XNA, which made C# development for DirectX easier (though Unity is now helping with that), most real hard core games are built in C++.

     

    Further, Mono aside, while it's true C# (and .Net) generally target the Windows platform, that doesn't mean it's best (as implied) only for "Windows Applications". Plenty of heavily used websites (yes, with the site itself running on a Windows server) are built with Asp.Net (Web Forms or MVC) - and most of those are built with C# on the server side.

  • "web-server application development is becoming more important in the market of web development" seems a bit of a tautology. If taken as "web development is important", there's no reason why PHP is specifically better than C#. That is, I'm not saying PHP is bad to learn, I just don't see why you'd downgrade C# and upgrade PHP on the basis of what you wrote.
Edited by pzkpfw
Link to comment
Share on other sites

2. "web-server application development is becoming more important in the market of web development" seems a bit of a tautology. If taken as "web development is important", there's no reason why PHP is specifically better than C#. That is, I'm not saying PHP is bad to learn, I just don't see why you'd downgrade C# and upgrade PHP on the basis of what you wrote.

 

PHP is running on Linux natively, while C# doesn't have official support for Linux by Microsoft.

Just some 3rd party hacks... Yet another thing to worry about whether particular code will work or not..

And yet another dependency on 3rd party.. And you have to have administrator privileges to install it in the first place.

Web-servers are typically Unix/Linux machines.

Edited by Sensei
Link to comment
Share on other sites

PHP is running on Linux natively, while C# doesn't have official support for Linux by Microsoft.

Just some 3rd party hacks... Yet another thing to worry about whether particular code will work or not..

And yet another dependency on 3rd party.. And you have to have administrator privileges to install it in the first place.

Web-servers are typically Unix/Linux machines.

Absolutely. I do believe LAMPS has the majority. But that wasn't what the post I responded to was about.

Link to comment
Share on other sites

I'd say that's all mostly wrong.

  • There's nothing in particular that makes C# "slow". Sure it compiles down to an intermediate language (similar to Java) but with modern CPU's and the JIT compiler, you'd hardly know it. Certainly if you want ultimate speed something like C++ compiled to native code (and recent moves in .Net mean you can get that for C# anyway) or even assembler, but there's nothing about C# that makes it slow for a "huge application" - that need for speed is more about the particular type of application, not the size. Something with gobs of calculations being done in a simulation, might be better in C++ (or whatever) than C#, e.g. while people were sad to see Microsoft drop support for XNA, which made C# development for DirectX easier (though Unity is now helping with that), most real hard core games are built in C++.

     

    Further, Mono aside, while it's true C# (and .Net) generally target the Windows platform, that doesn't mean it's best (as implied) only for "Windows Applications". Plenty of heavily used websites (yes, with the site itself running on a Windows server) are built with Asp.Net (Web Forms or MVC) - and most of those are built with C# on the server side.

  • "web-server application development is becoming more important in the market of web development" seems a bit of a tautology. If taken as "web development is important", there's no reason why PHP is specifically better than C#. That is, I'm not saying PHP is bad to learn, I just don't see why you'd downgrade C# and upgrade PHP on the basis of what you wrote.

 

I don't see how this confirms my post as "mostly wrong," as you just further confirmed my point.

 

Although, I could change the wording from slow to "relatively slow to other languages such as Java and C++." However, I don't see how that affects my point that C# shouldn't be that high in the list, considering that other languages have more favorable speed and efficiency, in my opinion.

 

The second point I agree and disagree with. While I would say that equal importance should be placed on all language in regards to their features, the list gives emphasis on "good scope."

 

"'web-server application development is becoming more important in the market of web development' seems a bit of a tautology."

 

I don't see how that is so. I was referring to the fact that efficiency is very important in web development due to how stringent it is to keep web applications up to speed in order to keep user-end responses fast so that customers do not fall away from a particular product. This is due to the attention span of the common user. Considering how web-based our society is now and how business opportunities rest in this area, I would say C# falls lower than PHP. However, this does not make C# completely void, but I did not state it was void in the first place.

Absolutely. I do believe LAMPS has the majority. But that wasn't what the post I responded to was about.

I would say my post was implying that point, although it may not have seemed to be. Again, the article was concerned with "good scope," and I don't believe, and challenged the point of, C# fits that high in regard to that requirement.

 

EDIT: I would like to present the big BUT in this situation because we are describing this in "good scope"

 

 

 

Java was too good, C# came late and attracted many ppl working on Windows and made them to be depended on windows (kinda of win-win for Microsoft). Java is portable and makes few compromises. Both Java and C# are primarily used for developing websites, but not anymore funtional languages (Javascript) will rule the internet down the lane. Java and Internet helped each other grow, but not anymore; being a java programmers gives me a pride that we ruled internet once (C# never had a chance).

 

C# is standardized, same time its is like marrying Windows :/ Java on the other hand was received well by open source communities and that it is truely portable (compared to C#). Both has pit falls and advantages, if you are trying to ignite a versus debate, don't, moderators will mark this as replica; there are enough arguments in Internet.

This is why I like/hate debates like this. While it is true that one language is more efficient, standardization and popular use is to be taken into consideration, which is probably why it was so high on the list. Ruby on Rails, for example, is not actually that great in comparison to other packages.

Edited by Unity+
Link to comment
Share on other sites

 

PHP is running on Linux natively, while C# doesn't have official support for Linux by Microsoft.

Just some 3rd party hacks...

 

Those "third party hacks" are the basis of all Linux, Apache, MySQL and PHP code. (Which is why some people are still scornful of Linux as a platform - it isn't that long ago that I heard one major OEM describe it as "written by amateurs in their bedrooms").

Link to comment
Share on other sites

 

Those "third party hacks" are the basis of all Linux, Apache, MySQL and PHP code.

 

You didn't understand. I was talking about running C# and .NET Framework on Linux as a 3rd party unofficial hack.. LAMP is fine. Runs natively as their original authors intended and compiled to Linux..

Edited by Sensei
Link to comment
Share on other sites

 

You didn't understand. I was talking about running C# and .NET Framework on Linux as a 3rd party unofficial hack.. LAMP is fine. Runs natively as their original authors intended and compiled to Linux..

 

What makes Mono "unofficial" but PHP (for example) "official"? There are probably many of the same authors involved.

 

Is it the fact that there is no spec available for the .NET APIs for the Mono developers to use? But then there is no spec for PHP or 99% of the rest of the Linux/GNU framework so it is no better or worse than the rest of the OSS world.

Link to comment
Share on other sites

.NET Framework is official product of Microsoft..

 

PHP authors compiled by themself their product to Linux, Microsoft did not.

 

How is that relevant?

 

Are you saying that only Microsoft software is "official"? Or only non-Microsoft software is "official"? Or either are "official" but you mustn't mix them? (So we can't run open source software on Windows machines?)

 

Your argument makes zero sense.

Link to comment
Share on other sites

I thought so meaning of "official software" and "unofficial software" is obvious.

Official version of software is made and released by original authors, or company which currently have copyrights for product.

Unofficial version is made by some volunteers. And typically can't be sold, because it would violate copyrights of original authors.

 

f.e. if I would take source of Apache, add something to it, compile, it would be my own unofficial version of Apache.

Official Apache versions are released by Apache Software Foundation.

 

 

 

Are you saying that only Microsoft software is "official"?

No. Not generally.

 

But Microsoft is author of .NET Framework and owner of copyrights, so in this particular case it's official.

 

In the case of API, it has slightly deeper implications: original authors have original sources, and know everything in details about product. Unofficial are relying only on released API docs.

So if something has not been mentioned in docs, unofficial version of f.e. language, will be incomplete, and might cause issues with certain software which utilized these not documented features.

Edited by Sensei
Link to comment
Share on other sites

I thought so meaning of "official software" and "unofficial software" is obvious.

Official version of software is made and released by original authors, or company which currently have copyrights for product.

Unofficial version is made by some volunteers. And typically can't be sold, because it would violate copyrights of original authors.

 

f.e. if I would take source of Apache, add something to it, compile, it would be my own unofficial version of Apache.

Official Apache versions are released by Apache Software Foundation.

 

It still makes no sense. Apache software is produced by volunteers (which makes it "unofficial" by your definition):

The all-volunteer ASF [Apache Software Foundation] develops, stewards, and incubates more than 350 Open Source projects and initiatives that cover a wide range of technologies.

http://www.apache.org/

 

 

Unofficial version is made by some volunteers. And typically can't be sold, because it would violate copyrights of original authors.

 

The official version is produced by volunteers.

Also, you are permitted to produce your own version of Apache. And you are even permitted to offer it for sale. (As long as you comply with the license terms.) It is no more or less official than any other version. Yours would be the official "Sensei Apache".

Edited by Strange
Link to comment
Share on other sites

 

It still makes no sense. Apache software is produced by volunteers (which makes it "unofficial" by your definition):

http://www.apache.org/

 

 

The official version is produced by volunteers.

Also, you are permitted to produce your own version of Apache. And you are even permitted to offer it for sale. (As long as you comply with the license terms.) It is no more or less official than any other version. Yours would be the official "Sensei Apache".

I think his point is the intention of the authors of each product.

 

I think it has been stated by many other programmers is that standardization of a language is in context with the standard operating system used. .NET is mainly a Windows-based framework that has the intention of running .NET applications, i.e. C# applications.

 

Wikipedia:

 

 

 

The .NET Framework (pronounced dot net) is a software framework developed by Microsoft that runs primarily on Microsoft Windows. It includes a large class library known as Framework Class Library (FCL) and provides language interoperability (each language can use code written in other languages) across severalprogramming languages. Programs written for .NET Framework execute in a software environment (as contrasted to hardware environment), known as Common Language Runtime (CLR), an application virtual machine that provides services such as security, memory management, and exception handling. FCL and CLR together constitute .NET Framework.

 

 

C#[note 2] (pronounced as see sharp) is a multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, generic, object-oriented(class-based), and component-oriented programming disciplines. It was developed by Microsoft within its .NET initiative and later approved as a standard by Ecma(ECMA-334) and ISO (ISO/IEC 23270:2006). C# is one of the programming languages designed for the Common Language Infrastructure.

 

On the other hand, the other languages are not as closed in to a "mother" operating system because they weren't design with intention to a particular OS in the first place. I think that presents his point.

Edited by Unity+
Link to comment
Share on other sites

  • 1 month later...

Write a list of everything you would need to do. There is lots of free code out there so I would focus on which language offers the most pieces to your puzzle. I personally think Python will win. Scientists love Python. Python and PHP are neck and neck in popularity, with Python moving to take the lead. PHP has advantages in free web software and the fact that more free or cheap hosting options are available. Python is a server-side geared language, which means you usually want command line access so you can install modules (free code).

 

If you really, really need to scale and plan on putting your simulation or whatever on a supercomputer, you probably want to go with a compiled language like C++. Python does have other binary options like PyPy which does JIT just-in-time compiling for better scalability. The really powerful Python modules are actually binaries written in like C++ with a Python wrapper, so you really just use Python to tie all the pieces together and most of the work is being done by binaries anyways.


You may also want to look into Node.js


I've been playing around with DLib a C++ binary that does object detection within Python.


There is something called StochPy

Edited by 3blake7
Link to comment
Share on other sites

For what you want to do I would learn C, or C++. However, I've always found Java really useful to start of with. It covers core concepts really well, and help give you a grounding to build up on

Link to comment
Share on other sites

No they can both run on the same server at the same time.

Why "no"? That comment was about popularity (right or wrong), not availability. Ability to run on the same server at the same time isn't a counter point.

Edited by pzkpfw
Link to comment
Share on other sites

Why "no"? That comment was about popularity (right or wrong), not availability. Ability to run on the same server at the same time isn't a counter point.

 

Yes it is. They can run in the same file. So you can use all of php's functions that don't feature in python and vice versa.

 

fpzwsjS.png?1

Link to comment
Share on other sites

Yes it is. They can run in the same file. So you can use all of php's functions that don't feature in python and vice versa.

 

But that has nothing to do with POPULARITY.

 

popularity (n): state of being liked, enjoyed, accepted, or done by a large number of people : the quality or state of being popular

http://www.merriam-webster.com/dictionary/popularity

 

What did you think the words means?

Link to comment
Share on other sites

But that has nothing to do with POPULARITY.

 

Yes it does because I can run the django python framework and horde php webmail on the same server. I can also run a wordpress blog if I want to and maybe write some code in php/python/ruby on rails

Link to comment
Share on other sites

Yes it does because I can run the django python framework and horde php webmail on the same server. I can also run a wordpress blog if I want to and maybe write some code in php/python/ruby on rails

You're still missing the point by miles.

Link to comment
Share on other sites

Yes it does because I can run the django python framework and horde php webmail on the same server. I can also run a wordpress blog if I want to and maybe write some code in php/python/ruby on rails

 

Please explain what you think "popularity" means. I am fascinated to know!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.