What is the programming language of the future?

Page 3 of 4 [ 53 posts ]  Go to page Previous  1, 2, 3, 4  Next

sage_gerard
Snowy Owl
Snowy Owl

User avatar

Joined: 20 Apr 2012
Age: 33
Gender: Male
Posts: 149

23 Apr 2012, 6:56 pm

Quote:
C++'s syntax is too unwieldy and its standard library lacking in modern features for it to get much traction outside of its niche.


I agree with the second bit, but syntax concerns are not that big a deal if we exclude extremes like BrainF**K and J. I would not say C++'s syntax is unwieldy as much as it is tedious, but that would a pretty weak argument to make in a world of snippet plug-ins and macros.

Quote:
HTML5/Css and javascript are becoming very popular, even for coding non-web apps


What makes markup lovely is the blurring of the line between data and code. Having a browser ready to interpret code in both a functional and a graphical context makes me tingle after working with compiled WinAPI projects. :drunken: I'm certainly seeing a future where the time between expressing something in code and testing it approaches zero, and this is a possible route.


_________________
"Sex, streams, friends accessing private members... Either I am just discovering unintentional innuendo or Stroustrup is a pervert."


NeantHumain
Veteran
Veteran

User avatar

Joined: 24 Jun 2004
Age: 44
Gender: Male
Posts: 4,837
Location: St. Louis, Missouri

24 Apr 2012, 9:21 pm

sage_gerard wrote:
Quote:
C++'s syntax is too unwieldy and its standard library lacking in modern features for it to get much traction outside of its niche.


I agree with the second bit, but syntax concerns are not that big a deal if we exclude extremes like BrainF**K and J. I would not say C++'s syntax is unwieldy as much as it is tedious, but that would a pretty weak argument to make in a world of snippet plug-ins and macros.

Well, not the syntax per se but also the concepts of the language. For example, many people complain about multiple inheritance and the complexities that can add, the cryptic compiler errors sometimes generated when working with template (although I've heard this has been improved in C++ 2011), manual memory management, etc.



sage_gerard
Snowy Owl
Snowy Owl

User avatar

Joined: 20 Apr 2012
Age: 33
Gender: Male
Posts: 149

24 Apr 2012, 11:29 pm

NeantHumain wrote:
sage_gerard wrote:
Quote:
C++'s syntax is too unwieldy and its standard library lacking in modern features for it to get much traction outside of its niche.


I agree with the second bit, but syntax concerns are not that big a deal if we exclude extremes like BrainF**K and J. I would not say C++'s syntax is unwieldy as much as it is tedious, but that would a pretty weak argument to make in a world of snippet plug-ins and macros.

Well, not the syntax per se but also the concepts of the language. For example, many people complain about multiple inheritance and the complexities that can add, the cryptic compiler errors sometimes generated when working with template (although I've heard this has been improved in C++ 2011), manual memory management, etc.


I feel those are more of an issue for those who are new to the language. Cryptic as they may seem, compiler errors and class relationship quirks can still be readily understood with enough practice.


_________________
"Sex, streams, friends accessing private members... Either I am just discovering unintentional innuendo or Stroustrup is a pervert."


Here
Deinonychus
Deinonychus

User avatar

Joined: 17 Jun 2012
Age: 61
Gender: Male
Posts: 379
Location: California

07 Jun 2014, 11:23 pm

Hello,

Enclosed are two links of interest to computer programmers.

NewsWeek Story, May 29, 2014 'Computer Programming is a Dying Art'
http://www.newsweek.com/2014/06/06/comp ... 52618.html

My response to story about coding/programming skills becoming less relevant:

An intuitive development tool called 'APP Inventor' for 'Android' (LINK:) is presently available. Yet, what's needed are tools that can boost software development for those of us who are "somewhat technically inclined" -- for such platforms as HTML5, C++, and JAVA.

LINK: Democratizing APP Building ['APP Inventor' tool was mentioned in this discussion thread]
http://www.appinventor.org/

Thank-you



Here
Deinonychus
Deinonychus

User avatar

Joined: 17 Jun 2012
Age: 61
Gender: Male
Posts: 379
Location: California

12 Jun 2014, 4:49 pm

ADDENDUM to previous post:

Anybody apply intuitive APP development tools such as; 'APP Inventor' (that applies 'artificial intelligence'), and goodbarber.com ?

Thank-you



slave
Veteran
Veteran

User avatar

Joined: 28 Feb 2012
Age: 111
Gender: Male
Posts: 4,420
Location: Dystopia Planetia

12 Jun 2014, 7:04 pm

sage_gerard wrote:
Programming languages are tools, and context-centric ones at that. De facto standard languages give us the impression of dominance since they address popular problems. I suppose predicting the "language of the future" would therefore also mean predicting the problems of the future as well. I suppose a way to make such a prediction would involve intuition and an eye for trends.

Personally, I would root for anything that allows one person to do a job that takes many people and a huge budget today. (I may say the same thing 20 years later 8) )

For stuff like this, I'd keep an eye on Stephen Wolfram. Since I cannot post URLs yet, I recommend his TED talk.


Stephen Wolfram is brilliant as a business man as well as.....

"Wolfram's parents were Jewish refugees who emigrated from Germany to England in the 1930s.[5][15] Wolfram's father Hugo was a textile manufacturer and novelist (Into a Neutral Country) and his mother Sybil was a professor of philosophy at the University of Oxford.[16] He has a younger brother, Conrad Wolfram.[17] Wolfram is married to a mathematician and has four children.[18]
Education

Wolfram was educated at Eton College, but left prematurely in 1976. He entered St John's College, Oxford at age 17 but found lectures "awful",[16] and left in 1978 without graduating.[19] He received a Ph.D.[3] in particle physics from the California Institute of Technology at age 20.[4] Wolfram's thesis committee included Richard Feynman, Peter Goldreich and Steven Frautschi[4] while the thesis research was supervised by Geoffrey C. Fox and Hugh David Politzer.[3]"*

https://www.youtube.com/watch?v=60P7717-XOQ

his brother Conrad is no slouch either.

He is a very impressive man in every way.


*source: Wikipedia



samuelbird
Butterfly
Butterfly

User avatar

Joined: 12 Jun 2014
Gender: Male
Posts: 17

13 Jun 2014, 2:16 pm

SWIFT! Goodbye, Objective-C!



Kurgan
Veteran
Veteran

User avatar

Joined: 6 Apr 2012
Age: 36
Gender: Male
Posts: 4,132
Location: Scandinavia

13 Jun 2014, 2:52 pm

Why the f*ck anyone would still use Objective-C is beyond me. Xamarin lets you convert C# code to iOS and Android with ease. The only thing that's kept it alive for the past few years is iOS.


_________________
“He who controls the spice controls the universe.”


Tsproggy
Toucan
Toucan

User avatar

Joined: 16 Jan 2011
Gender: Male
Posts: 283
Location:        

13 Jun 2014, 10:25 pm

Whatever language you choose to use is your specific future of programming.



mrrhq
Tufted Titmouse
Tufted Titmouse

User avatar

Joined: 24 Mar 2013
Age: 32
Gender: Male
Posts: 44

14 Jun 2014, 9:34 pm

Many people have said that functional programming languages are really great, but I just don't understand why. Lambda calculus, what is that?

In that case, I guess Haskell might be the, er, "language of the future" but I seriously doubt it. Maybe someone can please, please tell me why, even from a marketing standpoint.

I just prefer good-old simple lisp and C. It may not be a high demand language like Java or C++, but it gets the job done well and they are highly portable, meaning your software can run on all sorts of hardware should you decide to use these unencumbered, lower-level languages, without OOP abstractions and whatnot.

If you can avoid assembly, go with C or lisp next. Like really, do NOT bother with Haskell unless you know what you are doing.



DeuceKaboose
Snowy Owl
Snowy Owl

User avatar

Joined: 21 Mar 2014
Age: 33
Gender: Male
Posts: 141
Location: United States

15 Jun 2014, 10:35 am

K_W wrote:
Ultimate programing language... Plain speech.

If someone could create a compiler that used plain speech to formulate the program, it would instantly dominate the computing world.


I'm not sure how to feel about that but I doubt it would ever happen

Many programming languages are still mostly plain english but Plain speech would probably not be useful for making many programs

Also it would completely devastate the computer world as then pretty much everyone would be able to program and millions of jobs would be lost :x



Kurgan
Veteran
Veteran

User avatar

Joined: 6 Apr 2012
Age: 36
Gender: Male
Posts: 4,132
Location: Scandinavia

15 Jun 2014, 10:47 am

mrrhq wrote:
Many people have said that functional programming languages are really great, but I just don't understand why. Lambda calculus, what is that?

In that case, I guess Haskell might be the, er, "language of the future" but I seriously doubt it. Maybe someone can please, please tell me why, even from a marketing standpoint.

I just prefer good-old simple lisp and C. It may not be a high demand language like Java or C++, but it gets the job done well and they are highly portable, meaning your software can run on all sorts of hardware should you decide to use these unencumbered, lower-level languages, without OOP abstractions and whatnot.

If you can avoid assembly, go with C or lisp next. Like really, do NOT bother with Haskell unless you know what you are doing.


C is still THE language for embedded systems (making a compiler for C++ is a lot harder than making one for C), but computer game engines have moved on to C++, except for cases where you need to harvest as much power as possible out of weak hardware (eg. Shadow of the Colossus on PS2).


_________________
“He who controls the spice controls the universe.”


Here
Deinonychus
Deinonychus

User avatar

Joined: 17 Jun 2012
Age: 61
Gender: Male
Posts: 379
Location: California

15 Jun 2014, 3:58 pm

K_W wrote:
Ultimate programing language... Plain speech.

If someone could create a compiler that used plain speech to formulate the program, it would instantly dominate the computing world.


Hello,

The following story may be of interest 'Learn to Code: Learn to Think' (LINK) -

Despite the progress of artificial intelligence; to increasingly provide automated assistance to coding (to people who are at least "somewhat technically" inclined), learning to code boosts the very (human) thinking that will be important to whatever the programming language of future becomes!

LINK: http://www.npr.org/blogs/13.7/2014/06/0 ... n-to-think



beneficii
Veteran
Veteran

User avatar

Joined: 10 May 2005
Age: 40
Gender: Female
Posts: 7,245

15 Jun 2014, 5:05 pm

sage_gerard wrote:
Quote:
C++'s syntax is too unwieldy and its standard library lacking in modern features for it to get much traction outside of its niche.


I agree with the second bit, but syntax concerns are not that big a deal if we exclude extremes like BrainF**K and J. I would not say C++'s syntax is unwieldy as much as it is tedious, but that would a pretty weak argument to make in a world of snippet plug-ins and macros.


The newest version of C++, C++11, provides a huge amount of new functionality in its standard library. You can now do pseudo-random numbers with ease, multithreading, safe pointer management with class templates like std::unique_ptr (made possible by the addition of move semantics to the language)* (q.v.) and various other things using the new additions to the C++ standard library.

Compilers are just now getting around to fully implementing some of the most important new features.

* Basically, std::unique_ptr cannot be copied, but it can be moved to another std::unique_ptr, meaning the source std::unique_ptr gives up ownership of its pointer and hands it to the destination object. With the support for move semantics implemented in the STL (example below), std::unique_ptr can be used in containers, unlike the old deprecated std::auto_ptr. which couldn't work in containers because of a lack of support for it. Here's an example of std::unique_ptr

Code:
<memory>

std::unique_ptr<long> ptr1;
ptr1.reset(new long(5));  //assigns pointer to unique_ptr, with the value of long initialized to 5
std::unique_ptr<long> ptr2;
ptr2 = ptr1;  //ERROR!  unique_ptr cannot be copy-assigned.
ptr2 = std::move(ptr1);  /*SUCCESS!  With move assignment, ptr2 now holds the pointer that was originally assigned to ptr1 and ptr1 loses all ownership (and even access) to the pointer.*/


std::unique_ptr, when it goes out of scope or when its method release() is called, calls a deleter on its pointer (which can be specified by you, though there is a default deleter for std::unique_ptr which does not carry an array). This is a great new addition to the C++ standard library!


_________________
"You have a responsibility to consider all sides of a problem and a responsibility to make a judgment and a responsibility to care for all involved." --Ian Danskin


Last edited by beneficii on 15 Jun 2014, 5:17 pm, edited 1 time in total.

morslilleole
Veteran
Veteran

User avatar

Joined: 17 Dec 2011
Age: 36
Gender: Male
Posts: 511
Location: Norway

15 Jun 2014, 5:15 pm

beneficii wrote:
sage_gerard wrote:
Quote:
C++'s syntax is too unwieldy and its standard library lacking in modern features for it to get much traction outside of its niche.


I agree with the second bit, but syntax concerns are not that big a deal if we exclude extremes like BrainF**K and J. I would not say C++'s syntax is unwieldy as much as it is tedious, but that would a pretty weak argument to make in a world of snippet plug-ins and macros.


The newest version of C++, C++11, provides a huge amount of new functionality in its standard library. You can now do pseudo-random numbers with ease, multithreading, safe pointer management with class templates like std::unique_ptr (made possible by the addition of move semantics to the language)* (q.v.) and various other things using the new additions to the C++ standard library.

Compilers are just now getting around to fully implementing some of the most important new features.

* Basically, std::unique_ptr cannot be copied, but it can be moved to another std::unique_ptr, meaning the source std::unique_ptr gives up ownership of its pointer and hands it to the destination object. With the support for move semantics implemented in the STL (example below), std::unique_ptr can be used in containers, unlike the old deprecated std::auto_ptr. which couldn't work in containers because of a lack of support for it. Here's an example of std::unique_ptr

Code:
<memory>

std::unique_ptr<long> ptr1;
ptr1.reset(new long(5));  //assigns pointer to unique_ptr, with the value of long initialized to 5
std::unique_ptr<long> ptr2;
ptr2 = ptr1;  //ERROR!  unique_ptr cannot be copy-assigned.
ptr2 = std::move(ptr1);  /*SUCCESS!  With move assignment, ptr2 now holds the pointer that was originally in ptr1 and ptr1 loses all ownership (and even access) to the pointer.*/


std::unique_ptr, when it goes out of scope or when its method release is called, calls a deleter on its pointer (which can be specified by you, though there is a default deleter for std::unique_ptr which does not carry an array). This is a great new addition to the C++ standard library!


I really do like the new C++11. I'm very fond of lambdas along with all the minor improvement, smart pointers, additional algorithms etc. I'm also curious about tuples, variadics and consexpr ( haven't tested them out yet. )

What I struggle to understand though, is how move semantics work. For instance :
Quote:
container.emplace_back( "a string" );

will move the string into whatever container the method is called upon. But if you do something like :
Quote:
std::string str = "a string";
container.emplace_back( str );

Won't ( I think. ) How would I do it if I wanted to move it?

Also; when do I use std::move(), when are move ctors called as oposed to regular copy ctors ( which move ctor is a replacement for? )

And it's kinda confusing with all the new value categories ( there are now four of them. )


_________________
Want to learn to make games? http://headerphile.com/


beneficii
Veteran
Veteran

User avatar

Joined: 10 May 2005
Age: 40
Gender: Female
Posts: 7,245

15 Jun 2014, 5:22 pm

For this:

Code:
std::string str = "a string";
container.emplace_back( str );


You'll want to change it to:

Code:
std::string str = "a string";
container.emplace_back( std::move(str) )  /* note the use of std::move, which tells the compiler to do move assignment/construction instead of copy assignment/construction; you can also use push_back here.  str will be left in "an undefined but valid state" (most likely, it would be empty).  emplace and emplace_back/front allow for construction of the object in place within the container without first constructing it at all outside of the container by accepting any number of arguments that work as long as they match up to one set of parameters of the object's constructor.  The arguments are forwarded to the constructor using move semantics.*/


_________________
"You have a responsibility to consider all sides of a problem and a responsibility to make a judgment and a responsibility to care for all involved." --Ian Danskin