Need to decide on which language to use for a large project.

fuzzybabybunny

Moderator<br>Digital & Video Cameras
Moderator
Jan 2, 2006
10,455
35
91
I need to figure out what language I want my programmers to use for a large project that I have in mind. It is going to be pretty complex and it will be a global website with hundreds of thousands of database entries.

I did a quick read on Python vs PHP.

I like the idea that Python is very well designed and the code can be very elegant. There is also only one framework that everyone uses, so any Python person I hire or bring onto the project at a later date will be able to jump right in with the same Django framework.

PHP has a very fragmented framework space so it may be harder to bring newbies on?

Future considerations also include languages that would be used for creating desktop and mobile apps.

Any input?
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
Well, your second-to-last sentence would mandate choosing Python if that and php are your alternatives. Python can at least be used to create desktop apps using PyQt. I don't think either language is a viable alternative in the mobile space unless you're just wrapping pages in webviews.

I'm biased, since Python is what I'm working in these days. I think php is more of a mess, although to be honest both languages have their warts. Django is a good platform, and there is a huge ecosystem of modules for it, and a lot of help available. I think it is generally considered a big improvement over php, and that's the way I would go if I were choosing again today.
 

EagleKeeper

Discussion Club Moderator<br>Elite Member
Staff member
Oct 30, 2000
42,589
5
0
Just do not look at anyone that has ties to the Healthcare.gov website.

And write the requirements clear, concise and overkill.
Maybe run them by some people here that you trust/respect for feed back
 

beginner99

Diamond Member
Jun 2, 2009
5,320
1,768
136
Besides the size of the database what actually matters is how often it will be accessed and how it will grow.

Anyway, why not Java or another JVM based language? Sure easier to find people with Java Experience than Python and if if it is a large projects and hence change of personnel will be common then being able to quickly find a replacement is important too.
 

smackababy

Lifer
Oct 30, 2008
27,024
79
86
I'd consider Java simply due to the fact you can find a range of experiences for developers, there are a ton of mature technologies, and it can easily scale.
 

Imaginer

Diamond Member
Oct 15, 1999
8,076
1
0
How are you managing your project code amongst a team? A configuration management code software in addition to the language and IDE needs to be in great consideration.
 

BrightCandle

Diamond Member
Mar 15, 2007
4,762
0
76
This one is going to sound a little strange but I take it you aren't a programmer yourself. So a somewhat novel idea might be to get a team together and let them choose their technology stack, they are after all the ones with real experience with the tools and they will ask important questions that determine which languages are going to work better.

The problem is I just don't even remotely have enough knowledge to determine language from your post, the last sentence tells me there is a lot you haven't said that needs to be. You need to let the team of experts choose their tools.
 

smackababy

Lifer
Oct 30, 2008
27,024
79
86
How are you managing your project code amongst a team? A configuration management code software in addition to the language and IDE needs to be in great consideration.

Every language has good IDEs (well, this is an assumption I'm willing to make) and CM software. I wouldn't worry about that when choosing a language to use.
 

mosco

Senior member
Sep 24, 2002
940
1
76
This one is going to sound a little strange but I take it you aren't a programmer yourself. So a somewhat novel idea might be to get a team together and let them choose their technology stack, they are after all the ones with real experience with the tools and they will ask important questions that determine which languages are going to work better.

The problem is I just don't even remotely have enough knowledge to determine language from your post, the last sentence tells me there is a lot you haven't said that needs to be. You need to let the team of experts choose their tools.

I am with BrightCandle on this. This project doesn't seem like its off to a good start.
 

Graze

Senior member
Nov 27, 2012
468
1
0
ASP.NET, oh wait, that was not an option.

I hate python and I hope these fad languages die...as you stated given than it has only Django as its major web framework as oppose the PHP with its many you might be better off there.
 

Cogman

Lifer
Sep 19, 2000
10,286
147
106
If the question is between python and php, python all the way.

However, for a large project I would strongly recommend that you look into statically typed languages instead of dynamically typed ones. The fact is, statically typed languages generally have better tooling and are generally easier to maintain when the code bases get large.

If you are looking for a hip cool language with good support, I would look at Scala. If you are looking for something that just works, I would look at Java.

If you can stand doing an MS stack, C# really is a fantastic language.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
If you can stand doing an MS stack, C# really is a fantastic language.

The more time I spend off the MS stack the more I appreciate the cohesive elegance of C#'s design. I also really, really appreciate statically typed languages. A lot of pythoniacs cite duck typing as if it were an innovation, and not just a lack of typing :). I just wish C# wasn't so bound up with the MS ecosystem, because I don't have a lot of faith in that platform right now. I don't hate Python the way Graze does, but as I said above it has a lot of warts, like a lack of encapsulation, initialization by convention, varying naming standards, ugly wrappers around ugly libs like lxml, etc. But what is the better, statically typed alternative on the open source stack? Java? Ugh. C++ is fun... but writing tons of server code in it? Node.js? If javascript isn't the worst of all possible alternatives I'd like to know what is?
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
This one is going to sound a little strange but I take it you aren't a programmer yourself. So a somewhat novel idea might be to get a team together and let them choose their technology stack, they are after all the ones with real experience with the tools and they will ask important questions that determine which languages are going to work better.

I agree with what you're saying here, as long as the team has at least one veteran leading things.
 

mjd

Member
Jan 3, 2007
135
0
76
This one is going to sound a little strange but I take it you aren't a programmer yourself. So a somewhat novel idea might be to get a team together and let them choose their technology stack, they are after all the ones with real experience with the tools and they will ask important questions that determine which languages are going to work better.

The problem is I just don't even remotely have enough knowledge to determine language from your post, the last sentence tells me there is a lot you haven't said that needs to be. You need to let the team of experts choose their tools.

Yup, this.

And, if you're not sure how to get started hiring a good software team, go network with your peers at other local companies and find out who they use for their software consulting house. You can offload much of the process of requirements gathering, estimation, design, implementation, etc. And then if you like them and they like you, a couple of the developers might contract->hire at the end of the project's first contract.
Be sure to keep it local though or you won't be happy with the quality of communication and interaction.

-M
 

Cogman

Lifer
Sep 19, 2000
10,286
147
106
The more time I spend off the MS stack the more I appreciate the cohesive elegance of C#'s design.
Yeah, C# is really a great language, I wish that mono got more support from the OS community, but because MS touched it, the language is blackballed (I get that there is mistrust for MS especially due to past practices, but I wish that could be looked past).

I also really, really appreciate statically typed languages. A lot of pythoniacs cite duck typing as if it were an innovation, and not just a lack of typing :). I just wish C# wasn't so bound up with the MS ecosystem, because I don't have a lot of faith in that platform right now.
Yeah, From what I've heard, MS has a lot of issues with in fighting between the OS team and the software team. WPF, for example, has been constantly under attack because the OS team is worried it would encourage more development in C# on non-windows platforms.

If C# is to be adopted by more, it really needs to distance itself from the Microsoft ecosystem (fat chance :( )

I don't hate Python the way Graze does, but as I said above it has a lot of warts, like a lack of encapsulation, initialization by convention, varying naming standards, ugly wrappers around ugly libs like lxml, etc. But what is the better, statically typed alternative on the open source stack? Java? Ugh.
Java isn't as bad as I've given it crap for. Yes, it has warts, but the fact is that Java is probably the most tooled language out there. (My company is currently using). I hate that it takes so long for Java to evolve, but I do appreciate the fact that I have great static analysis, IDEs, and a pretty good package management system. I like the fact that there is a library for everything (even if several are sub-standard).

C++ is fun... but writing tons of server code in it? Node.js? If javascript isn't the worst of all possible alternatives I'd like to know what is?
What is the worst, Perl? I hate perl. It is such a terrible language. javascript is next to it in horribleness, but at least it didn't evolve from a document description language (It would be like Latex turning into a programming language).
 

code65536

Golden Member
Mar 7, 2006
1,006
0
76
What is the worst, Perl?

Depends on what you use it for. Large project with lots of people touching the code? Nah. But for one's own personal use when you need to whip up something quick and dirty? Nothing beats the elegant beauty of a Perl one-liner. :p
 

Cogman

Lifer
Sep 19, 2000
10,286
147
106
Depends on what you use it for. Large project with lots of people touching the code? Nah. But for one's own personal use when you need to whip up something quick and dirty? Nothing beats the elegant beauty of a Perl one-liner. :p

elegance? beauty? No, I see "unmaintainable mess".

I would argue that Python and Ruby have perl beat when it comes to elegant and beautiful 1->10 liners. If I need to do any scripting, those are my languages of choice.
 

Ken g6

Programming Moderator, Elite Member
Moderator
Dec 11, 1999
16,709
4,669
75
Perl really isn't the worst language. Of those listed here, I'd say JavaScript is the worst, followed by PHP, then maybe Perl. At least in Perl dollar-signs mean more than "I just made this designate a variable 'cause I couldn't write a good parser". Ruby is definitely better than Perl - it's basically Perl++.

I've never been able to get into Python much because the lack of braces drives me nuts. I can get indenting from braces easily with ViM, but I don't know a way to get braces from indenting. If I could give Python braces, and later remove them, on the fly, I'd like it much better.

As far as the OP's question, I'm going to be another vote for Java. Since Android is Java-based, you might even be able to reuse some code on mobile. You could also use a little of one or two languages that compile to Java bytecode, like Groovy - but don't go overboard.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
I've never been able to get into Python much because the lack of braces drives me nuts. I can get indenting from braces easily with ViM, but I don't know a way to get braces from indenting. If I could give Python braces, and later remove them, on the fly, I'd like it much better.

That bugged the hell out of me when I started, but I have gotten used to it. I like Python as a back-end to Django. It works at least as well as ASP.NET/MVC. I also like it very much for scripting and server-side tasks. Today I needed to grab a crapload of urls off a site, and it took like five minutes in the shell using requests and lxml.

At some point I am going to try PyGame just for the hell of it.