XImplosionX

Programming

Does Managed Programming Make Us Lazy?

by Patrick Godwin on May.25, 2009, under Programming, Technology

With the popularity of managed languages in recent years, we have no doubt seen changes in the way we program. In recent years, we’ve seen many additions to the .Net family of managed languages, such as WPF, LINQ, WCF, and XNA, to name a few. But have we given up our good programming practices for the convenience of managed languages?

I don’t know about the majority of programmers out there, but I find myself writing sloppy code while working in a managed language. I’m not saying that I break all rules of style or flow, but I’m not as careful as I usually am. Let’s say we’re writing a function in C++ that calls a simple integer type function. The rule of thumb would be to check what it returns, and based on predetermined conditions, handle any errors that may arise. A pattern I’ve noticed, mainly with C# programming, is a total disregard for exception handling. And even if the exception is handled, it isn’t handled well. Last time I checked, “Throw Exceptio” was not a smart way to handle errors.

I’m sure there are many other examples of Managed Programming leading to lazy programming. This is only the most obvious one I’ve delt wtih. What issues have you had with managed languages? Please write about them in the comments, get the conversation going.
Thanks for reading,
Patrick Godwin

Note: I’m very sorry for the short length of this post. The quality of this post is also extremely bad, and does a poor job of articulating my thoughts on the subject. Mea culpa.

4 Comments more...

What Language Should I Choose?

by Patrick Godwin on May.10, 2009, under Programming, Technology

I get asked this question at least once a month. Someone I know will come up and ask me this question. I can never answer this in a clear, concise way. So I’ve decided to write a blog post on all the Pros and Cons of the languages I know, and refer my friends to this post.

VB.NET: I love this language and I would recommend it to anyone starting programming. I learned how to program in Visual Basic 2005 and I can safely say it is one of the easiest languages I have ever used. The syntax reads in an easy, clear way. You don’t have to worry about silly semi-colons or curly braces. Building a User Interface is simple with the Visual Studio WinForm designer. The inclusion of the .NET Framework in Visual Basic has given some great resources to this already great language. The only downside to VB.NET is the dependence on the .Net Framework/Mono Runtime. While this is possibly one of the greatest features in the language, it takes away a lot of the power you see in an unmanaged language. Not to much of an issue, but still a con.

C#: C# is another great language that I would recommend C# to someone who has some prior experience. While the syntax and program design can be annoying at times, it is a very powerful language. While sharing the same advantages as VB.NET, it also has integration with the XNA Framework. This is by far the best managed Graphics API available. With it’s support for Windows, XBox 360, and the Zune it destroys every feature available in Managed DirectX. The biggest issue with C# is, again, it’s dependence on the .Net Framework/Mono Runtime and it’s slightly annoying program design.

C++/C: This is the language I always suggest when I am asked that question. While it is one of the hardest languages to learn, it is the best. I feel that learning a good, unmanaged language gives you a proper idea of independent programming. You aren’t relient on a managed environment, like in the .Net and Java languages, which means you have to manage your own memory. This teaches developers safe coding practices and helps them develop clean code. Once you have a good hold on the language, the object oriented concepts should be studied. This is when C++ becomes a true powerhouse. This allows you to develop complex applications or even great game engines. Once you have C++ under your belt, most other languages should come quite easily.

Python: A very powerful scripting language. You can accomplish many tasks in Python with relative ease, given it’s large, supportive user base. The only issue with Python is it’s annoying syntax. I swear I have so much trouble reading Python code for education. In a language like Python it can be hard to enforce good style, which is a big minus for the language.

Java: What can I say about Java? It has to be one of the worst languages I have ever TRIED to learn. I want to know who the genius was that, while writing the AP Computer Science Curriculum, thought “Well, we assume that these students have very little, if any, prior programming experience. What language should we choose? I know! Java!”. Whoever this man, or group of men, was, he screwed up big time. Why choose a language that has an annoying syntax and no advantages over the .Net Framework and force students to learn it for what should already be a tough class. While it is managed like the .Net languages, the Java Runtime Environment is receiving updates ALL the time. What are they constantly changing? Honestly, if you program in Java you have the patience of a saint. It takes real skill to tame this monstrosity of a language.

Now there are many more languages thant those I have covered here. MANY more. But these are the languages that have seen the most attention in recent years, and these are the languages I have used. I’ll always suggest C++ and then VB.NET for a beginner, but you should take everyone’s suggestion as just that, a suggestion. Read some tutorials, try each language, form your own opinions. Whatever you find the easiest and cleanest should be the language you chose.

Thanks for reading,
Patrick Godwin

Edit: Forgot to mention Mono when talking about the .Net Languages. Edited for clarity.

4 Comments more...

House Cleaning and News

by Patrick Godwin on Apr.25, 2009, under 3D Modelling, Misc, Programming, Technology, xOS

Well, I finally have my own Domain name and dedicated space on a real server. I’m still quite grateful to Kevin for providing me a temporary server until I could figure out hosting. But it is quite nice having a regular domain name.

That said, I have some housecleaning issues I need to address:

  1. Lack of FTP Access: This one is really no one’s fault. My boss (who is hosting this on his BlueHost Server) is currently having issues with FTP accounts. Some business about a customer uploading illegal software to his share of the server without anyone knowing. No big problem, should be solved in a few days.
  2. WordPress: I’m not a huge fan of Wordpress. Rather, I prefer having my own software running on a server. Wordpress is great, don’t get me wrong. But it dominates my website and uses up one of my bosses limited SQL Databases. I’m looking to develop an alternative Blogging/CMS system. Should be a good chance for me to hone my PHP Coding skills.
  3. Boring WordPress Theme: This relates directly to number one. I already have a theme chosen, but no ability to upload it to my server. This will be solved when I get my FTP account later this week.

That said, I am looking forward to being able to share my thoughts on certain subjects, mostly related to technology, and have a venue for displaying my work. I’m always learning about new technologies and working on advancing myself as a programmer.

First up: xOS. A while back I was reading up on Operating System development, and I came across the site OSDev.org, a website dedicated to discussing Operating System development and Theory. This website led me to BrokenThorn Entertainment, which has an excellent series of tutorials on Operating System development within the Visual Studio 2005/2008 IDE. Following this tutorial has allowed me to develop a basic kernal:

xos-build-1

The interesting thing about this tutorial is the usage of MS Visual C++ as a platform. It covers the needed runtime programming to use this runtime, which allows the developer to set up a very clean Object Oriented kernal. The ability to create classes that function at such a low level in about 14 tutorials is amazing. They also help you create a nice DebugPrintf(); function that allows you to output text to the screen without a major source code change. Nothing too incredible impressive, but convenient. A simple change from:

DebugPrintf(“Hello world. This is xOS Build 1.”);

To:

DebugPrintf(“Hello world. This is xOS Build 1.\n\nIsn’t that cool?”);

Produces:

xos-build-2

Operating System is one interesting subject.

Another skill I am beginning to learn is 3D Modelling. So far I’ve only ripped models from known video games for the purpose of applying a Bone/Skin system to the mesh. I started with Kingdom Heart’s Sora:

sora1

A rather cool model if you ask me. I used the tool 3DRipperDX to rip the model and it’s textures from a Kingdom Hearts Model Viewer. I had to use Windows XP due to Windows Vista/Windows 7’s DirectX 9 Emulation. Note to people using 3DRipperDX: Until the application has proper Vista/7 support, stick with XP. The models I’ve ripped have been nothing but garbage. Anyways, I then used 3D Studio Max 9 to import the .3DR file for editing. I followed a tutorial for model rigging based on Garry’s Mod Ragdoll Creation. I spent about a half an hour rigging a basic skeleton with no finger posing to this model. The output didn’t turn out GREAT, but it was okay for my first attempt at Skeleton Rigging:

render1

This render doesn’t show the major issues with my rig. But the next one should do the job:

render2

That’s better. There is one obvious problem with this render. The vertices aren’t weighed properly. We see the hair being influenced by Sora’s Arms, and that simply won’t do. I couldn’t get an accurate render of the feet, which is unfortunate because that is where the weirdest/most annoying issue resides. The vertices are assigned to a bone on the opposite leg, causing weird issues with moving the feet. Should be a rather easy fix, providing I can get Max 9 installed on Windows 7 (Cannot find my DVD with the installer)

Well, that is about all I have to say tonight. Stay posted to this site for further updates. Comments are appreciated and encouraged.  Thanks for reading.

Yours,
Patrick Godwin

2 Comments more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...

    Archives

    All entries, chronologically...