tags:

views:

477

answers:

11

Hi,

I have been developing in asp.net since its existence (also classic asp before that) and also I have been using SQL server as my back-end database.

After serious consideration, I now want to change the language I use. Considering the OOP capabilities of the .NET platform, what other languages do you suggest that I start learning instead of ASP.NET and why?

Also what should I use as a database? I have no experience in databases other than the SQL Server.

A: 

As far as databases are concerned, the most obvious alternative would be MySQL. Other options would be PostgreSQL or SQL Lite

TheTXI
+2  A: 

I would use PostgresSQL for your database. It is by far the most feature complete of the open source databases. Though MySQL seems to be regarded as the best for speed. If cost is no object then oracle is obviously a big player.

In terms of language Java is going to be your best bet for similarity to the .Net languages. It is strictly typed and OO like C#. And is widely used in large enterprises, much like .NET.

Of course if you are changing just for the sake of change then maybe its better to switch to something more different. Ruby and Python are the big dynamic languages these days and will offer a different perspective.

Jack Ryan
+10  A: 

Django would get my vote.

Like you, I'd been using ASPNET since its creation and then a job forced me to use PHP. Then another. And another. I got to the point where 90% of my time was spent doing PHP and I didn't want to split my time between two completely different work-flows so I just went with it.

PHP, as you may or may not be aware, is a complete scrotum of a language when compared against the relative beauty of languages like C# or even VB.NET. And it's not getting better any way soon. Development frameworks mean you have to upload half-a-million files for each project and it all just feels unneccessary.

So about two months ago I started to look into alternatives. I use Linux now so I bump into Python quite a lot of the time. It looks pretty enough. It's always pretty well formatted (by design) and it has fairly excellent OOP techniques and opportunities.

Then I learnt about the Django ORM so I thought I'd make a quick site with some basic interactive features. I made a secret santa website for my girlfriend's family. Multiple forms, authentication, listing and detail pages and a splash of AJAX. Took me (a complete uber-novice) two days to get functional and the rest of the week to beautify (I'm a slow designer).

Other benefits include its superb built-in caching, a community that really knows how to program stuff, pre-made, reusable apps that you can just plug into your site and go, and python's easy_install and pip that make getting modules so simple. Oh and unlike ASPNET, it'll run on any OS which can make for considerable savings for personal projects.

I've since ported the rest of my PHP sites (and those that I have to maintain) to it and I'm about to start porting over my ASPNET projects. I'm happy.


Databases are pretty much a non-issue in Django. You pick one that's right for the size of your project, plug it in and the ORM handles all the DBIO.

I use SQLite for small-to-medium projects and a MySQL cluster for large projects.

Oli
what do you mean by 'scrotum of a language compared to the relative beauty of languages like C#...'? I always thought scrotums were beautiful
Shawn Simon
Maybe he doesn't like wrinkles in his langauge :)
Kev
It was meant as a throw-away derogatory statements but I guess I could extrapolate its meaning to to "full of balls". Even with a good framework it's tedious and messy.
Oli
I suggest using postgresql for django deployment - sqlite for django development. MySQL isn't very well supported in the latest releases of Django/MySQL (unless the python bindings have caught up over the last couple of weeks?)
Josh Smeaton
Fair enough. I'm only using a MySQL cluster as a remnant from my PHP days. It doesn't seem terrible but I have noticed some speed issues (compared to SQLite)
Oli
+2  A: 

Ruby on Rails seems to be very nice choice. Only it is a bit too different and bit too weird. But seems to be most effective, too. RoR is database agnostic, so the choice of database is not about syntax. You don't need to think about which database you use when writing application. You just use RoRs methods to access database and it will automatically wire it to the DB engine.

Or go with PHP and MySQL, it is proven and widely spread. I myself was using MS SQL Server first and switched to MySQL without problems. PHP is a bit dirty language, but it is comfortable to use and well supported and documented, too. If you decide to go this way, try ZEND framework, it solves lots of things and makes writing web applications much easier.

Josef Sábl
+1  A: 

What is the reason for you leaving the .net scene?

A change of language may not fix the root cause.

I switched from LAMP to .net myself due to my job and then gradually in my hobby time to allow me to focus 100% on 1 language.

KevinUK
hi kev,the reason is not job-centric. Recently I realised I had enough of bits-of-pieces that keeps me stuck with microsoft. e.g. I want to buy a MacBook but I can't since I need IIS and VS etc.. (I know I can use windows on a mac but what's the point) wanted to write more but comment limits finish
Emin
+1  A: 

I switched from LAMP to .net myself due to my job and then gradually in my hobby time to allow me to focus 100% on 1 language.

You probably learned a few things from LAMP that you could apply to .NET. That's the best reason to explore other languages and frameworks.

Dynamic scripting languages can save considerable development time: no compilation, weak typing, and flexibility.

Personally, I love the flexibility of php. There are no abstract, inflexible, complex web controls to learn. I have complete control of my widgets because I can change the underlying code.

rick
Thats the beauty of .net MVC - complete control and no web controls. I prefer compiling, you get compilation checks and debugging built in. I never got PHP debugging working on Vista.
KevinUK
+1  A: 

I didn't know php is still like a scrabbled scripting language... I don't want to go back to the old times...

No I need the shift to be as smooth as possible. From what I read, it seems ruby is going to be the choise... although Django seems interesting.

To be perfectly honest, the more I discover and experience in JavaScript / jQuery and DOM the less I use asp.net controls and related garbage on my pages. I have reached to a point where I know use ASP.NET for my project's back-end (objects and data classes to send and retrieve data) and standard HTML forms and controls on the front side, using jQuery for DOM manipulation and communication (thorugh ajax) with the server.

Having come to this point in my development career, I thought it would be a good idea to learn a new language that is faster than asp.net, that is not dependent on windows, and that is easier to learn.

I can then buy a macbook and relax :)

Emin
"that is faster than asp.net" -- do you mean faster to developer in, or faster to execute?
Portman
This does not appear to be an answer. Could you update your question with these additional thoughts?
S.Lott
+1  A: 

Use Mono, it runs on Linux, Mac and Windows. It runs my ASP.NET program faster in Ubuntu than when it is running on my development machine(Windows XP's IIS, though I haven't yet compared the speed when running on Windows server)

Languages supported on Mono: C#, Java, Boo, Nemerle, VB.NET, PythonNet, IronPython, Oberon, PHP, Object Pascal, Cobra, Component Pascal, Delta Forth, DotLisp, #Smalltalk

For database, use PostgreSQL, it is dubbed as the Oracle of the opensource database. It has many features suitable for enterprise-type system.

http://www.mono-project.com/Main_Page

Michael Buen
+2  A: 

Why not take a look at ASP.Net MVC, you will capitalize on much of what you already know and is quite a bit different in its approach to websites. Just switching without a compelling reason or target in mind is probably not that useful, however it doesn't hurt to learn another language.

This site is built on ASP.Net MVC and Linq to SQL.

Turnkey
+1  A: 

SQL Server Express has worked fine for me. I've used a lot of different databases with c#, but only mysql and binary files in production.

+1  A: 

ASP.NET isn't a language. It's a framework upon which you can build web sites and web applications.

the reason is not job-centric. Recently I realised I had enough of bits-of-pieces that keeps me stuck with microsoft. e.g. I want to buy a MacBook but I can't since I need IIS and VS etc.. (I know I can use windows on a mac but what's the point)

Are you tired of Microsoft in general or ASP.NET specifically? Or is there a Cult you want to join that requires MacBook ownership? Or are you interested in LAMP or Java development? Do you still want to do web applications or are you more interested in desktop or mobile applications?

Todd Smith