To go along with my article about what I did in 2014, I thought it’d be prudent to look to the future and figure out what I want to do this year. Last year, I accomplished much more than I would have hoped and this year, I want to take it easy so far in that, I want to focus on a few specific things and make the best out of it.

Before I get into my list, I should mention a few things:

  1. I’m on my way to getting a new job which means that a lot of my experience will be based on what I do there.
  2. This is more of an article for me than for anyone else. I will be writing a general article for others shortly.

Sassy Sass and Lessy LESS

I’ve been a long-time LESS-user; however, I only used my knowledge to do proper nesting and enjoy the use of variables. The problem with that is that it’s taking advantage of oh, a whole of 10% of the tool. I never realized how amazing these tools are and how well you can architect an app’s UI until I started working on <a href=”https://github.com/zurb/foundation-apps” onclick=”_gaq.push([‘_trackEvent’, ‘outbound-article’, ‘https://github find more info.com/zurb/foundation-apps’, ‘Foundation for Apps’]);” >Foundation for Apps. So well, in fact, that it reminds me of beautiful back-end code. Something I didn’t think was possible with CSS.

There’s the use of mixins, loops, string interpolation (I think that’s what it’s called), math calculations, inheritance, functions and so on. In fact, SASS has value maps. Maps! On top of that, you can truly affect the flow of execution in these files.

Why would you want to do that in the first place? The best example I have (right now) is the main example on the LESS site:

@base: #f938ab;

.box-shadow(@style, @c) when (iscolor(@c)) {
  -webkit-box-shadow: @style @c;
  box-shadow:         @style @c;
}
.box-shadow(@style, @alpha: 50%) when (isnumber(@alpha)) {
  .box-shadow(@style, rgba(0, 0, 0, @alpha));
}
.box {
  color: saturate(@base, 5%);
  border-color: lighten(@base, 30%);
  div { .box-shadow(0 0 5px, 30%) }
}

This behavior reminds me of constructor overloading, the ability to set which constructor to run based on the arguments submitted. Regular constructor overloading, as far as I know, works on the number of arguments, this style let’s us use if/else-like logic called “when”.

There’s also the ability to create classes with dynamic names like so in SASS:

$className: 'my-class';

.container {
    &.#{$className} {

    }
}

This would create a CSS definition for .container.my-class. Cool right? Now, if we combine a bunch of features like these, you’ll end up with the ability to dynamically create classes and styles via mixins and variables. Check out the Foundation for Apps motion UI scss files. The architecture on there is amazing.

I’ve already started my study on this subject in my repo for BattleDex, a Pokemon Pokedex utility.

All in all, I love architecture. I love building apps with beautiful code and both SASS and LESS will allow me to take this a step further. I’m excited as hell about this.

C-sharp

I’ve spent the past two years trying to find some excuse to get into ASP.NET and C#. I honestly love C#. I like the way it looks, I like its versatility, I like that it’s like Java but definitely unlike it as well. I also like that it’s like C++ but easier even if it is not as performant.

For the longest time, I’ve worked with PHP and Javascript. And both have their advantages and both have their unique styles. I think that PHP is the best example of a language that’s easy to learn as well as usable in the real world. I enjoyed my time with it and still enjoy it. However, it’s a dynamically typed language with little versatility. Unless you’re writing an app or an enterprise system, you can’t use PHP for anything. It’s a language of the web, nothing else.

Javascript on the other hand is ultra versatile. Just about anything can run it and you can build just about anything with it from desktop apps, to mobile apps, to games, CLI utilities, etc. But it’s growing. It’s my main programming language and I won’t abandon it for a long time.

However, I’ve been interested in statically-typed languages for a long time as well. C# has been very appealing because of its application in game development, desktop development, web development, and mobile app development. It’s a solid language and I realy like its OO aspect. On top of that, there’s an interesting community around it.

Continue with Javascript

PHP was how I fell in love with programming and development, Javascript is how I married myself to the career. I love Javascript, and I love the way it works. I even love its quirks and I especially love how quickly it’s progressing and the community around it.

I never was big on community but then when you see JS and experience its community, you’ll change your entire outlook. Why? Because:

  1. the community quickly finds faults and builds solutions for it.
  2. it will help move the language forward, thus ES5 and ES6.
  3. it will build tools to improve the language, such as Flow (which does static type checking) or Traceur (ES6->ES5 compiling).
  4. it upkeeps libraries and packages. I can’t count the number of PHP packages that were simply abandoned
  5. it helps you answer questions and solve problems.
  6. it creates tutorials and helps teach the language.
  7. it takes the language to places you never dreamed of (think Espruino)

I’ve been very impressed by the JS community.

Anyways, so what do I want to accomplish this year?

  1. The JS community is steadily moving toward ES6 even if browsers aren’t. I definitely want to learn how to take advantage of the ES6 toolset.
  2. AMD/CommonJS modules. I already use CommonJS in Node, but with browserify or a similar library, I’d like to take this type of structure to the front-end.
  3. A new library. I’m already well versed in AngularJS but I’d like to try something new. I’ve been looking at React but also at BackboneJS.

That’s about it.

And personal goals

I’d like to include some personal goals. I’m definitely not all programming which is why I’d like to share some personal goals on my list, just briefly:

  1. Move to Colorado.
  2. Write a children’s book – I have a child on the way and I’d like to commemorate it with writing a book.
  3. Have a child! 🙂 Already on the way.
  4. Buy a house.
  5. Re-immerse myself into Czech culture.
  6. Self-publish my second novel. This one is way better than the first one.