Fog Creek Software
Discussion Board




Development Paltforms - none J2EE or .NET centric

This may seem like a recursive question ;)

Lets say that I do not want to develop an application in either J2EE or .NET. What debvelopment platform can I use?

The rational is that if I want to have customers that may run Windows, Linux, Mainframes etc and I want to make my software available to all platforms.

Beth
Monday, August 18, 2003

Please provide more details - is this a server app or a client app/tool/website or something else? Why mainframe? What are some of the other requirements?

AEB
Monday, August 18, 2003

Delphi runs on Windows and its sister product, Kylix, runs on Linux.  (Kylix is basically Delphi for Linux.)  You can develop so that same project will compile in both environments.  Gets you on to a mainframe only if mainframe is running Linux.

Herbert Sitz
Monday, August 18, 2003

Beth,

If you need to be able to handle cross-platform development, and don't want the two development platforms you mentioned, I'd recommend working in C or C++.  If you application is restricted to internet applications, PHP might be a viable choice for you.

C and C++ have a bear of a learning curve, but I found that the initial pain is worth it. Applications are more stable, significantly faster, and once you know how to use the language it's a very nice one to work in.

Clay Dowling
Monday, August 18, 2003

www.zope.org

"What is Zope?

Zope is an open source application server for building content managements, intranets, portals, and custom applications. The Zope community consists of hundreds of companies and thousands of developers all over the world, working on building the platform and Zope applications. Zope is written in Python, a highly-productive, object-oriented scripting language."

El Macho
Monday, August 18, 2003

The application is a financial management tool that will extract relevant information from operational databases etc to ensure compliance with sarbanes-Oxley.

Sarbanes-Oxley act was introduced by congress to reduce corporate fraud - no jokes please :)

As financial data can lie in a number of disparate databases - we have to keep the softwae platform agnostic.

For C/C++ are there rapid application development tools that can aid the development.

At this stage, we haven't decided if it will be web-based (i.e. thin client) or client/server.

My impressions are that it will be much easier to develop a web-based application. Please correct me if I am wrong.

My reasoning for the above is that with thin client we can access from any terminal to the server.

I am not very familiar with PHP - Are there limits to PHP that can be done much easier within a J2EE or .NET framework?

Are C/C++ only to be used with client/server development?

Beth
Monday, August 18, 2003

I think you should first decide whether your app should be a web app or a desktop application before making a choice of language.

Beensquared`
Monday, August 18, 2003

>I think you should first decide whether your app should be a web app or a desktop application before making a choice of language.

How come?

Bait
Monday, August 18, 2003

If a web app, you have to choose which language you would like to use (typically, Perl, Python, Java, PHP), and for this language, which framework to ease development.

I've spent the past few weeks taking a look at Python-based tools like CherryPy or Quixote, and find them easier to use than PHP, and easier to grasp than Zope.

Interesting stuff:

Philip and Alex's Guide to Web Publishing
http://philip.greenspun.com/panda/

Internet  Application Workbook by Eve Andersson, Philip Greenspun, and Andrew Grumet
http://philip.greenspun.com/internet-application-workbook/

Frederic Faure
Monday, August 18, 2003

Why no j2ee?  I understand that dotnet costs money, and there may be security concerns (I personally don't think there would be, but I understand how people could be afraid of microsoft).  Any particular reason? 

vince
Monday, August 18, 2003

.NET does *not* cost money. You can download the SDK for free and go to town. Visual Studio, however does cost money.

Python is a good choice for portability and power if you don't want to go the C/C++ route, or the Java route. Last I heard Python actually ran on MORE platforms than Java does.

However, Python doesn't have the nicely polished drag-n-drop gui designer like tools that the more commercial environments do.

Chris Tavares
Monday, August 18, 2003

It seems to me that your key technology requirments are:

* Highly platform portable
* Can easily work with a wide range of databases

Given this and the limited information we have, it seems to me that Java is by far the best choice (and no, Java != J2EE). It's a choice that is hard to go wrong with in this case.

Any platform you work with will have a JVM available for it, and I don't think there's any database worth using that doesn't have a JDBC driver available for it.

Burninator
Monday, August 18, 2003

Bait: because one figure out what the basic requirements  are before recommending a language?

Alyosha`
Monday, August 18, 2003

I'm way out of my depth, but am I right in assuming your application only needs to communicate with a bunch different types of servers right, rather than actually _run_ on them? 

If so, you need to write a server app that speaks ODBC, COM, or whatever the mainframes/other DBs use. 

AFAIK, Java or .NET (or several others mentioned) can probably do that.

What kind of resources do you have in-house?

Lee
Monday, August 18, 2003

Well, dotnet does cost money, in regards to servesr.  You need IIS to do ASPX, unless mono now fully supports it. 

vince
Monday, August 18, 2003

The Philip Greenspun stuff is fairly outdated - not much use now.

Adam
Monday, August 18, 2003

I agree that Greenspun's book is a bit dated. Any other recommendation?

Frederic Faure
Tuesday, August 19, 2003

"However, Python doesn't have the nicely polished drag-n-drop gui designer like tools that the more commercial environments do."

Not out of the box. But most GUI toolkits have (at least Qt, Gtk+ and WxWindows do), and you can use that with the python bindings just fine, even if one may argue that these tools are still not as polished as other alternatives.

motta
Tuesday, August 19, 2003

for accessing various databases and presenting them over the web I'd recommend ColdFusion.  It is trivial to access databases with it.

In any case, ensure you use some library/language with a generic database access layer too; for counter-example, in PHP you have different code to access a MySQL database than a Oracle database etc etc

i like i
Tuesday, August 19, 2003

perl

dk
Tuesday, August 19, 2003

C and C++ do have very nice RAD environments.  For Windows and Linux, Borland's products are easy to use and look great.  You'll curse the day you opened your Visual Basic box when you see how easy these tools are.

A lot of your choice will need to be based on your internal resources.  I don't think that using C/C++ would be a good bet if all of your internal programming staff only knows Visual Basic.

As far as web applications go, C and C++ are still strong contenders.  If you're running the applications on a UNIX server they will be faster than PHP, even for fairly simple applications. For a more complex application like you're describing, they'll leave PHP in the dust.

If you want, contact me off-forum and we can discuss this further.

Clay Dowling
Tuesday, August 19, 2003

If this is purely a reporting application then just use a normal program written in watherver you like, As others have said neutral DB access technology (ODBC, ADO, ...) is available for any platform/language.
My personal choice would be C#.Net, but that is just because I like it. I'm sure Java or Phyton or whatever will do just fine.
Presenting the data is probably best handeled in standard HTML given the number of platforms you have to cover.

Just me (Sir to you)
Tuesday, August 19, 2003

I agree with dk, Perl.  Here's why:

1. Easy learning curve.

2. You can write a program that works, and even if it's a hack-job it can be cleaned up later.

3. Web ready, GUI ready, command line ready.

4. Has tons and tons of database modules.  Basically, if you have that database driver on your computer, Perl has a module for it in the DBI.

5. Platform independant.  Perl is ported for just about everything : Linux, Windows, Mac, HP-UX, Windows CE, etc.

6. Plays well with others.  I've been working on a web-app the past couple of weeks which uses Perl and PHP in various spots, and they both play well with each other.

That's my $0.02 anyway.  For the record, I am a Perl hacker so my view could be biased. :)

Andrew Burton
Tuesday, August 19, 2003

Err, please change "in the DBI" to "over at CPAN."

Andrew Burton
Tuesday, August 19, 2003

i agree, perl's pretty good, and you can run it off multiple platforms, but its not going to scale as well as java or dotnet.  On the other hand, for small to medium sites, its probably going to be the fastest solution, bot development time, and for generating pages.

vince
Tuesday, August 19, 2003

Having developed web applications in both Perl and Python, I'd have to say that Python is much preferable from a development-time (and maintainability) perspective.  I'd hate to try and build a large-scale enterprise application (web-based or otherwise) in Perl.

If you held a gun to my head, I *might* be willing to write a J2EE web app using Struts, but my fingers wear out typing the ten lines of Java it takes to write the equivalent of each line of Python code that's in my head...

Phillip J. Eby
Tuesday, August 19, 2003

uh huh. Python is superior to J2EE because its easier to type out stuff..... I don't know too much about python, but i'll go ahead and say it doesn't do a fifth of what j2EE does for you, and the reason it takes more work initially to develop is because its much easier to scale and maintain later on.  I'm sure python has its uses, but i'm also sure theres a reason people don't use it to build large scale systems.

vince
Tuesday, August 19, 2003

yahoo maps and yahoo groups were both written in python. i believe yahoo mail is also written in python. i actually don' t like python that much, but it is a lot more scalable than java.

.
Tuesday, August 19, 2003

oh, i forgot... many parts of google are also written in python.  it doesn't get much more "large scale" than that.

.
Tuesday, August 19, 2003

*  Recent Topics

*  Fog Creek Home