Dynamic Keys

The Right Tool For the Job

with one comment

Are you a carpenter, construction worker, electrician, or similar? If so, odds are you have a tool box. How many tools are in there, like 15-20? That sounds about right. Are they all the same tool? Hecks no! That would be crazy! Why the heck would anybody do that!

Wake up call! You do!

Yeah, I’m talking to you! The one who uses C++ for all of his problems. You! The one who wrote every single one of his apps in the last ten years with Java! You! The one who asks every single one of his questions on Stack Overflow, even though Programmers.SE would have gotten him better answers!

Now that we’ve gotten that all settled, let’s have a talk.

Jack of all trades…

OK, so we’ve figured out you have a problem. You only use one language for everything even though there are better tools for the job. Let’s take a C++ addict for example. I have no problem with C++, in fact I like it a lot. It’s useful for creating GUI applications on your desktop and games, and if you’re a C++ guru, it may be good for text processing and such. But once you start making web apps, please back away. Seriously, just drop the gun and back away, because that’s what it is, a gun.

Every language can be thought of as a gun. You can hit the target every single time for some projects, but for others, it will backfire, e.g.

  • Messy code
  • Low functionality
  • More work
  • More development time

Now think of C++ as a gun.

  • 3D Game – Bullseye
  • Art application – Bullseye
  • Q&A Site – Hospital Bed

Now let me make sure I’m getting my point across. C++ can be awesome for web development, especially when considering speed and agility (Google is written in C++), but it is going to take longer and it is going to be a lot more code than needed.

That’s where my argument comes in.

You want to get things done. Right? Most people want there software to be as easy, clean, and fast as possible. C++ gives you the speed, and the clean, but it’s not easy to do, and takes a lot more work. So why not use another tool? Why not learn another language?

Do you see what I mean yet?

…master of all

You know how some people say you should be a “Jack of all trades, master of none”? That’s bull crap. You should master them all, or at least attempt to. Now, I’m a firm believer that you can’t completely master a language, unless you’ve been using it religiously for a really long time. What I mean by master them all though, is get good. Know what you can do with the language, when you should use it, and when you shouldn’t. And above all, be able write reusable code.

Don’t learn a bunch of similar languages though. Learn languages from different paradigms, different ways of thinking.


So what’s the point?

  • Stop using one language to do all of your jobs. There is a reason the “god-language” doesn’t exist yet: it can’t happen. There will always be downfalls to a language, and we have to be able to see which language will help us get a specific job done faster.
  • Be able to have the luxury of choosing which language to use by learning many languages and paradigms. It will help you think differently about programming, and make your code in any language much cleaner and readable.
  • Do what will help you. That’s probably the golden rule. Don’t learn a language because it is extremely popular. Learn it because it will help you get the job done.

Written by Dynamic

August 13, 2012 at 5:16 pm

Posted in Think About It

The PHP Endeavour

leave a comment »

I’m done playing around. Perl sucks at web development.
Wait, wait! Let me clarify. Perl is actually a great language for database communication, and creating full-blown websites! It has great modules to help you do so, and everything! But compared to other scripting languages, Perl sucks at web development. There are two major reasons for this:

  1. Perl has a major lack in documentation when it comes to it’s web frameworks. Even the books that are written on certain frameworks are terrible.
  2. The code gets messy. Now, let me be the first to say that any Perl code can get messy, and I like to think that I’m good at keeping it clean. But it gets nearly impossible to keep clean when developing for the web.

Now don’t get me wrong, Perl is my absolute favorite language (so far, I have tried Perl, C, Java, Scheme, and Javascript), but it has it’s own purposes. Perl is better off the web. Perl is better when it’s not messing with GUIs. Perl is better when it’s working with text. So, today is the start of the PHP endeavor.

Now, for those of you who are saying “But PHP stinks!”, I’m a firm believer that every language has a main purpose. Yeah, I can make GUIs in Perl. Sure, I can manipulate text with Lisp. But why should I? There are better tools for the job. My goal here is to find out what the right tool is for the task at hand. After intense  research and communication, I’ve decided to start with PHP.

Wish me luck!

Written by Dynamic

August 11, 2012 at 10:34 pm

Posted in Uncategorized

Why I Use Vim, and Why You Should Too

with one comment

Note: This is all from a Windows viewpoint.

My programming life is mainly scripting and web development. With that said, I’m usually using Perl, Python, PHP, Javascript, and HTML/CSS.  Most people I know will download/install an IDE, and try to run everything from there. But, of course, most people I know are C++, C#, and Java developers, and that gives them an excuse to use an IDE. If you’re scripting though, you have no business using a heavy IDE. That’s where Vim comes into play.

Vim is an advanced text editor. It can be used to edit any type of file, but is used mainly to edit source code. The main advantages of Vim are:

  • It’s speed. On my PC (Celeron processor, 2GB memory) it opens on click. I also have Eclipse IDE on my PC. I takes about a minute and a half to open. On top of opening speed, when Vim and an internet browser are the only things open, Vim never freezes. Actually, I can have about 7 Vim windows open and working on my (very slow and old) PC, without slowing down at all.
  • It’sagility. Vim has an awesome split-open feature that allows several files to be open in the same window, without getting messy. You can also tab files, as you would do in an IDE.
  • Syntax highlighting and “helpers”. The reason I love Vim is that it doesn’t overwhelm you with automatically adding closing brackets when you open one. It’s also really awesome with syntax highlighting. Not too much, not too little. It also has the auto-indent that everyone loves. Vim gives you just enough to get the job done fast.
  • It has built in file searching, regular expressions, and commands.  Honestly, it’ll take a few days of heavy working to get used to Vim’s built in commands, and even then you won’t know the whole thing. For that, I’ll send you to Vim Docs.

Let’s look at a few screenshots:

Vim home

When you first open Vim on Windows, you’ll see this.

Some code on your Vim window.

So let me conclude with this… If you want a quick, light-weight, powerful text editor, Vim is the way to go! And on that note, here’s the download link.

Written by Dynamic

July 13, 2012 at 5:45 pm

Posted in Programming Tools

Keeping Your Language’s Community Together

leave a comment »

If you look at programming languages like Ruby, Python, and Java, you see a well established, corporate backed community. Ruby, for example, was created by Yukihiro Matsumoto, a Japanese Computer Scientist. Python was created by Guido van Rossum in the Netherlands, and Java began development with James Gosling, Mike Sheridan, and Patrick Naughton, and was established and given to the public by Sun Microsystems (which was bought out by Oracle).

After creation and their first public release and beyond, the languages, as well as their communities, continued to grow.

Now, look at a language like Lisp. It was first made a “real programming language” by Steve Russell. The difference between a guy like Matsumoto and a guy like Russell, is that Matsumoto had total control over the language. Russell, on the other hand, allowed the language to fragment. This is the reason Lisp is more of a family of languages, while Ruby, Python, and Java are individualized languages.

Now, if your a language designer, the first question to ask yourself after developing the language is “Do I want full control over what happens with this?”. If the answer is no, then your probably going to end up like Lisp. If the answer is yes, then your on the right track. See, to make sure you keep your language together, you have to take control. Basically, you have to be a vicious king.

You may be thinking, “But Python doesn’t have a King!”. Yes, you right. But Python has corporate backing. The language is heavily endorsed by Google, as one of the few languages that are allowed on their App Engine, as well as a language that is widely used throughout it’s services. Java’s current King is, of course, Oracle, but it also get’s backing from Google (main Android development language). Ruby’s creator also has a strong hold on the language’s path.

This post has kind of been all over the place, so let me just conclude. A language’s community is kept together with:

  • A viciously strong king

or

  • Corporate backing

If you have one of those two, then you are all good.

Written by Dynamic

July 11, 2012 at 9:05 pm

All of Your Ideas in a Bottle

with 2 comments

Well not literally, but you get my gist.

When you get an idea, what do you do with it? Do you ponder it for a few minutes, and then forget about it completely? Do you try to execute whatever it is ASAP? Then, if you fail, you forget about it completely? These are two things that I hated myself for doing. I remember having great ideas, that could actually get somewhere. Whether they were business ideas or writing prompts, a new software or a fresh product, I forgot them all. I went into a deep, dark state of sadness…

In all seriousness, I got pretty ticked. So I set out to Walmart and got myself a handy-dandy notebook. Well, it was actually a college ruled notebook. Anyways, I began writing all of my ideas in this notebook. If I was out of the house, and didn’t have my notebook on me, I would write a brief description of the thought into my phone’s notepad, and elaborate when I got home. This worked for two reasons:

  1. I didn’t have to worry about losing my notebook when I went out of the house.
  2. I was able to keep track of my thoughts in a simple, effective way.

I’ve been doing this for about 6 months, and am happy with the results. I encourage you to do the same. It doesn’t even have to be a paragraph of writing. Just give it the following format:

  • Title (top)
  • Bullets describing thought (middle)
  • Date (end)

Easy right?!

Now go get yourself a notebook, and get ideological!

 

Written by Dynamic

July 10, 2012 at 4:19 pm

Posted in Uncategorized

Innovation is Hard

leave a comment »

Have you ever seen a commercial advertising a product, and you thought to yourself “Oh my gosh, I could’ve thought of that!”. Oh you can? Then why didn’t you? Let me just say, innovation is hard! People who are making these new products for us, in my eyes, are awesome!

Have you ever heard of the Modern Art Period? It was a worldwide movement, starting around 1900, after the invention of the camera. Basically, before this time, artists were painting portraits exactly how they were seen (or as close as possible). When the camera came around, artists were free to create whatever they wanted, as they didn’t have to paint realistically.  This entire movement was what innovation was all about. Like, who the heck would’ve thought of making this (besides Picasso of course):

Pablo Picasso, Three Musicians (1921), Museum of Modern Art.

Now, imagine about 100 years of art like this! Amazing! Now, let’s translate this into technology. We went from IBM’s Punched Cards to Spacewar! to C to the Internet to Lisa to the iPad… and so on. Now ask yourself, could you have come up with any of those ideas before they were invented? Maybe, but most people wouldn’t have.

What’s the point I’m trying to make here? Start thinking. Think about how much work went into today’s technology. Do you think you would have thought of it? Of course, you never know. Maybe you will think of the next big thing…

Written by Dynamic

July 9, 2012 at 7:13 pm

Posted in Uncategorized

Tagged with , ,

About

leave a comment »

Hi, I’m Dynamic. Capital “D”, lowercase “ynamic”. Dynamic. I’m an extreme computer enthusiast, and I’m interested in:

  • Computer Hardware
  • Computer Software
  • Software Development
  • General Hacking
  • Mathematics
  • Physics
  • Statistics
  • Sports
  • Lots of productive and helpful ideas
  • and a lot more…

So this blog is going to be pretty geeky…

Why are you blogging?

Because I needed a place to keep all of the information (objective and subjective) that I find interesting. The great thing it is, you can read it too!

What will you be blogging?

I will be blogging about my interests of course. I will mainly blog subjectively, unless it is a how-to like post. Then it will be objective.

Written by Dynamic

May 25, 2012 at 8:43 pm

Posted in Uncategorized

Follow

Get every new post delivered to your Inbox.