Page 1 of 1

No no no. Rethink, redesign, restart

PostPosted: Mon Jul 23, 2012 3:23 pm
by Rob Lang
I'm a programmer by trade and I'm rather good at it. This is a rant, it goes technical half way through.

I've been coding the new game archive (codename 2km2kt but it will still be 1km1kt when it's finished) and I don't like the way the framework is coming together. It's too difficult to find the holes. PHP has a shallow learning curve, is easy to deploy and can be found on every server in the world. It's also a lame dog.

I'm talking to OUR GLORIOUS BENEFACTOR to see if I can choose a different language that isn't sodding PHP.

Technical bit
I am a Microsoft stack Dev by day: SQL Server back end with Linq2SQL as an ORM, C# .NET front and middle tier, dependency injection with structuremap, inversion of control everywhere, clever caching models, fast "baked" pages, jquery and ajax with JSON. It's all pretty standard. We unit test the front (jasmine) and back (nUnit) and have an integration system with 3rd parties that's self aware. When we do a release to live, we're sure of the code quality and bugs are normally niggly little things and normally in javascript.

PHP is awful. Not being compiled means that you don't find out if there's a glaring bug until you try and use it. I've been using Selenium to test the front end at work and on the 2km2kt prototype and that picks up a lot of things I break but the PHP lets too many easy bugs through. I need have Selenium tests for things that shouldn't need them. Debugging is a pain, interactive debuggers for PHP are light years behind what Visual Studio gives (I've tried JetBrains's's tools and eclipse) and in the end PHP not being compiled is filthy. It doesn't help you.

Frameworks are all very heavy. Codeigniter, Zend, these are all things that wrap up what C#.NET has.

So, I would like to move to MySQL back end (which is all good, don't mind that) with an ORM wrapper (perhaps nHibernate), C# backend and nice MVC pages with Razer or use Nancy. I can then use all the stuff we do at work with nUnit, build processes and so on. Then I can make progress, rather than being up to my eyes with rubbish. The servers 1km1kt are Linux, which is ok because there is the mono project that allows you to run C# on servers.

End

Half of the reason that I find it difficult to make progress on 2km2kt is that PHP and MySQL is such a pile of crap. I find myself thinking "I could have done this in 5 minutes in C# with LINQ and an ORM" and that's just annoying. That's why there's no new archive. Yet. I'm not giving up but I think it's wise to look at what is going on and change it.

Re: No no no. Rethink, redesign, restart

PostPosted: Mon Jul 23, 2012 3:39 pm
by misterecho
You'll get there big man.

Just taking a step back and getting an overview can be helpful. Take a while to think it over, develop a plan and then get stuck into the nitty gritty.

Re: No no no. Rethink, redesign, restart

PostPosted: Mon Jul 23, 2012 4:26 pm
by kumakami
We all feel your pain rob, just remember no one here is pushing you to finish at designated time....so you can just chill for a bit if needed

Re: No no no. Rethink, redesign, restart

PostPosted: Mon Jul 23, 2012 4:28 pm
by Onix
I think the strength of PHP is that you can write code and then I can just walk in and modify it. There's no worry of where the source code went three years later. With good storage practices it would never be a problem but companies tend to pay someone to make a web page and then ignore it at all costs. Inside a company, I've seen the programmer get fired and take the source code with them, feigning ignorance that they never had it.

Re: No no no. Rethink, redesign, restart

PostPosted: Mon Jul 23, 2012 6:22 pm
by vulpinoid

Re: No no no. Rethink, redesign, restart

PostPosted: Mon Jul 23, 2012 11:09 pm
by BubbaBrown
I, too, know the pain of PHP. PHP is one of the choice reasons I try to stay as far away from web development as possible. Everyone and their brother has a LAMP server and want to cheap out as much as possible... paying the difference with my sanity. I'm out work is because everyone is wanting a horrible web app on a LAMP stack... And I can't seem to at least find a place that wants to do something a little less insane for once.

Just out of curiosity, how is the ORM setup working for you? I've seen them and used them, but I'm one, I guess, of the few who aren't afraid of stored procedures and raw SQL. I depends on the database structure, but sometimes the ORM can get in my way more often than not. "Gee, I can let Visual Studio create classes for all the stuff in the DB, then do operations on these objects to get the results I want after mucking with it.... OR I just do a one-liner in SQL and be done in a fraction of the time?" That's what I've always seem to run into.

As for databases, have you looked into PostgreSQL or Firebird. They both seem pretty interesting and a bit more advanced than MySQL.

As for web frameworks... If you are familiar with .NET... C# is your best bet. The only other thing I can think of is using something derived from Python.

Re: No no no. Rethink, redesign, restart

PostPosted: Tue Jul 24, 2012 5:34 am
by Rob Lang