wood burning stoves*
The moose likes Meaningless Drivel and the fly likes Which New Programming Language To Learn Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Other » Meaningless Drivel
Bookmark "Which New Programming Language To Learn" Watch "Which New Programming Language To Learn" New topic
Author

Which New Programming Language To Learn

Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60746
    
  65

chris webster wrote:So I guess I should order your book, now, huh?

That's always a given!


[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
Bert Bates
author
Sheriff

Joined: Oct 14, 2002
Posts: 8801
    
    5
I know that "languages" are sexy, but I want to reiterate that Neo4j and Akka strike me as technologies that are: interesting, new, and probably extremely useful in many new projects.

Put another way, these two technologies might teach you more about the broader topic of "software development" than a language would.

If you're still reading:

Neo4j is a Java-based graph database - and it seems graph databases are far superior to (faster than), relational databases for a lot of new applications. Think: many to many, peer relationships (i have many friends and they have many friends...) instead of the old, pervasive one-to-many hierarchical relationships (a salesman has customers, a customer has orders, an order has line items).

Akka - I'm a bit hazy on, but it sounds like it solves the kinds of problems that Jini so elegantly solved 10 years ago. Robust, self-repairing, easy to implement concurrency.

So these aren't languages, but they offer interesting new perspectives on modern problems.


Spot false dilemmas now, ask me how!
(If you're not on the edge, you're taking up too much room.)
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4646
    
    5

Bert Bates wrote:Neo4j is a Java-based graph database - and it seems graph databases are far superior to (faster than), relational databases for a lot of new applications. Think: many to many, peer relationships (i have many friends and they have many friends...) instead of the old, pervasive one-to-many hierarchical relationships (a salesman has customers, a customer has orders, an order has line items).


Actually relational dbms do a poor job of the kind of nested hierarchical relationships that happen in the real world.

There was a time when link-based databases were common. Back before SQL took over the world. There were good and valid reasons to not use SQL and to use link-based, but over time, SQL won.

Mostly because SQL (or relational calculus) was shown to be a basis set for all operations on data. There is no query that can be asked of the data that you can't make with SQL. There is no update/insert/delete you can make that you can't make with SQL. This is proven. What was not proven, or attempted to be proven was that while you can theoretically do anything with relational calculus, the average programmer has zero chance of doing it. And even if he can express it, it may not finish execution before the sun goes super nova.

Hussein Baghdadi
clojure forum advocate
Bartender

Joined: Nov 08, 2003
Posts: 3476

What about Frink? With it you can create web traffic analytics system that shows data in kilograms.
Haskell, Go, D, Pharo, Rust are also deserve a place in your list. Have a look at them and evaluate your choice.
Stephan van Hulst
Bartender

Joined: Sep 20, 2010
Posts: 3573
    
  14

Bear, I mostly dislike JavaScript because if you assign a value to an undeclared variable, it automatically gets declared as a global variable. Is there a good reason they chose to have this - to me it seems, abominable - feature?

I once spent two hours debugging a page only to find out that I had a typo in one of my variables, which the language promptly interpreted as being a new global variable.

I'm also not a fan of weakly and dynamically typed languages in general. Is there a way for me to warm up to these typing systems?

On the other hand, I really do love functional languages, which is the one reason I can see myself enjoying JS.
chris webster
Bartender

Joined: Mar 01, 2009
Posts: 1607
    
  13

Pat Farrell wrote:Actually relational dbms do a poor job of the kind of nested hierarchical relationships that happen in the real world...What was not proven, or attempted to be proven was that while you can theoretically do anything with relational calculus, the average programmer has zero chance of doing it. And even if he can express it, it may not finish execution before the sun goes super nova.

Harsh words (but fair comment)!

Actually, as a database application developer, I think a more common problem is that there are too few "average" programmers who bother to learn SQL well enough to write averagely decent queries, even on applications that are well suited to the relational model. You can write bad and inefficient code with any language, and I'm sceptical that every slow query is necessarily a justification for switching to a NoSQL platform.

But leaving aside the DB wars, it's true that there are some very interesting non-relational alternatives around these days for different application areas and "Big Data". Check out Eric Redmond's book Seven Databases in Seven Weeks for quick intros to Redis, Neo4J, CouchDB, MongoDB, Riak and HBase. And yes, I know that's only 6 databases - but the 7th is the commendably relational PostgreSQL.


No more Blub for me, thank you, Vicar.
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60746
    
  65

Stephan van Hulst wrote:Bear, I mostly dislike JavaScript because if you assign a value to an undeclared variable, it automatically gets declared as a global variable. Is there a good reason they chose to have this - to me it seems, abominable - feature?

That's an artifact of the browser environment, rather than of the language. And, it's prohibited in strict mode. I wouldn't let that be an obstacle in your path.
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4646
    
    5

chris webster wrote:I think a more common problem is that there are too few "average" programmers who bother to learn SQL well enough to write averagely decent queries, even on applications that are well suited to the relational model. You can write bad and inefficient code with any language


True that bad code is easy to write.

And I agree that folks who think of themselves as better than average engineers don't learn more than the smallest amount of SQL to get something to run. I had an engineer working for me on a project that would have been better in a pure hierarchical DBMS but we used RDBMS anyway. He had a BS in some related field, and was just finishing up his MS in Computer Science. He wrote a seven way join. It worked great in testing. It took days when the production tables had millions of records in each.

Dude, didn't they teach you that O(n^7) is a bad thing if N is bigger than about 10?
chris webster
Bartender

Joined: Mar 01, 2009
Posts: 1607
    
  13

Pat Farrell wrote:And I agree that folks who think of themselves as better than average engineers don't learn more than the smallest amount of SQL to get something to run.

On the plus side, that kind of thing has given me lots of low-hanging fruit to pick when I've been asked to help make existing database applications perform better!
Bert Bates
author
Sheriff

Joined: Oct 14, 2002
Posts: 8801
    
    5
i'm no SQL expert, but I have had to denormalize a few schemas in my time, in order to get them to perform
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4646
    
    5

Bert Bates wrote:i'm no SQL expert, but I have had to denormalize a few schemas in my time, in order to get them to perform


I am a database expert, and we experts always denormalize schemas to get them to perform. Then we get in trouble with folks who think that being 4th normal form is necessary to get into Heaven.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Which New Programming Language To Learn
 
Similar Threads
Where to post Scala discussions
I Want to Learn C As Additional Programming Language
Java seems like a technology no one wants to use
As a programmer, how often do you feel the need of creating your own laguage for your purposes?
What does R-language bring to the table?