jueves, 10 de noviembre de 2016

Language as the "Ultimate Weapon" in 1984 (Commentary)



I have often found myself thinking entirely in english for some spans of time just because there are things I can't express in spanish. Reality in our perception, as well as our thoughts, is inherently shaped by language since we learned to speak in a structured way, even now, trying to think in a strictly pragmatically abstract way is an ability we have irreversibly lost. With this in mind, it is logical to think that, depending on the mothertounge or languages each of us understands, our realities will be different, in fact, the more languages we know, the broader our horizons.

Newspeak is, in my opinion, an abomination to our freedom of thought, since we can no longer attain this pure state of abstract thinking, we are chained to language to dictate our thoughts and ideas. The fact that a language is specifically designed to limit our ideas by eliminating the existence of concepts some may consider loaded, is a violation in itself to our last bastion of privacy and freedom of being, our mind. While some words are eliminated, some others are substituted, which makes me think that we may not be too far away of mind censorships ourselves in this non-fiction universe.

Critical thinking is a blessing, I think everything and everyone must (not should) be universally bound to criticism one way or another, and this criticism must be cold, devoid of emotion, and pragmatic in its nature. We often scurry away from words we don't like or think will sound terrible once said (see sexual inuendos, political correctness, and baby talk), and I honestly see how this could lead to an eventual transformation in language made specifically to not hurt sensitivites, when some sensitivities must be hurt in order to progress.

What I think I mean with this is that the best way to fight a thought-limiting distortion of language is to call things by their name, and have a more pragmatic outlook on words and its meanings.

lunes, 10 de octubre de 2016

The Promises of Functional Programming (Commentary)

Functional programming is the chinese of programming paradigms_ it's complicated, a lot of people speak it, you don't actually know anyone who speaks it, and everyone keeps telling you you should learn it because "it'll be useful in the near future."

As I've said time and time again in this blog, functional programming has its beauty, just like my unborn child will be beautiful to my eyes even if it's born with three ears. We have its elegant way of solving problems, its simple yet effective way of implementing loops and repeated processes, and its timeless support of concurrent and parallel programming.

It is important to learn chinese, maybe not for actually communicating with chinese people, or for simple bragging rights, but because by learning it, we may actually get some insight on how other languages work. This applies to functional programming too, we may gain some insight on how languages like Java or those languages that support recursion work.

I have praised LISP's ease of maintainability before, for it not containning a hell ton of code in its scripts or variables to worry about, which is great, because renaming variables takes about 75% of my "code-embelishment" time.

lunes, 3 de octubre de 2016

Revenge of the nerds (Commentary)



IT industry problems almost always start with a classic case of "blind leading the blind", specially when testing new features. Inspiration is not something very valued by IT companies these days (unless you're thinking of companies of gargantuan size, or teeny tiny forgetable startups), the boss will always go for whatever is safest, and "safest" in most cases translates to "cheapest". Every once in a while, the boss will think to themselves "Hey, look, <hip programming platform here> <version number here> is out, let's all move our processes to that.", without really knowing what <hip programming platform here> truely is or what <version number here> implements.

There are so many other options beside what's "hip" or "standarized" that can do a better job at not crashing everything within a company's system, and were actually built for those specific task you're trying so desperately to write out in Java (oh, crap, what are you doing?). Take for instance LISP, there's only so many ways one can nail down a nail, you don't need a mechanical drill, or a hydraulic press, you don't even need a hammer (if you're brave enough). So, why try to over complicate things?

One of the few things I've come to cherish about LISP is it's elegant no-nonsense design thought for the solution of simple one-way problems, and it can also be used for a world of complex tasks for a swift, easily manageable and maintainable solution. It is said that most modern programming languages are created with LISP simmilarities in mind, and, though I cannot find any actual true simmilarities between Python and LISP (for Python is not mind-numbingly complicated), I agree that this shift is not necessarily a bad thing.

Unless you make me (write (like this)).

lunes, 19 de septiembre de 2016

Triumph of the Nerds: Riding the Bear (Commentary)

Picture unrelated... kinda.

There's always the little guy, he who looks at giants with wondrous amazement and thinks to himself "Man, I could totally create a pair of huge giant arms, with those I could lift a thousand bricks and build a house in 20 minutes, something those big dumb giants haven't thought about, for sure. Wait, what if I sold those homebrewed giant arms?".

Refrain from judging my sleep deprived brain, but I think my reasoning is relatively understandable... kinda. Quoting Pablo Picasso, "Good artists copy, great artists steal.". It is not uncommon to hear stories of stolen glory in the IT industries, usually, whoever creates finds his credit swept away by a younger person who discovered an unthought use for the creation. Isn't that why Silicon Valley is constantly invaded and plagued of vague startups? Little companies stick to bigger ones like remoras to a shark, but this position under the shark's belly gives them a new perspective of what clients might want, or what clients might want to do with the shark.

This is the key to success in the wilderness that is Silicon Valley, look at what your neighbours are doing and strive to overpower them before they are done. Yes, there are many sources of inspiration, but you don't have to look too far, just think, "could this particular printer double as a toaster?", "will this new pc be able to run my socks database manager?". 

People are too critical to realize that, with the correct lawyers, and a good strategy, the whole IT industry is an open source paradise.

lunes, 5 de septiembre de 2016

Dick Gabriel on LISP (Commentary)


LISP always manages to confuse me even more each time I hear an explanation of its features. Objects and methods as the same? I had heard of this before when learning Ruby, I knew the compiler took everything as a an object, be it a string, int, boolean, an actual object, or even a teeny tiny char. This seemed logical, every value type has its on inherent characteristics that couldn't be treated the same between data types.

What I find so mind numbing is the fact that LISP just creates objects for every line, if you see a parenthesis in my code (which you will find in industrial quantities in LISP) you should know that an object starts at its openning, and closes at its closing parenthesis.What does this mean to the average object-oriented programmer? A true matrioska doll of unadultered and low leveled code, objects within objects within objects. This only makes objects easier to change and maintain, considering its attributes and functions are all objects that can be interchanged in a modular way, but is still something unheard of for someone like me who can only boasts of an expansive understanding of the Java language.

There's an interesting point made in this podcasts, and that is that LISP was original conceived as a tool for AI developing. I can see how such a simple and maintainable language con serve such a purpose but I couldn't even begin to list why I think that would be harder than making a compiler in Java. Not that I'm demeriting LISP, but it just seems hard, everything seems so ambiguous and abstract, I would imagine that the AI science would contain at least a small quantity of explicitely and compulsorily concrete values instead of all these weird data structures.

I honestly hope that by the end of this course I understand most (if not all) of the rarities LISP has to offer.

lunes, 29 de agosto de 2016

Breating the Averages (Commentary)


I've never thought of programming languages being more or less powerful than each other, my usual thought pattern when choosing a programming language has always been (and most likely be until the day I die): "me likey, me usey". Power has always been a matter of syntax for me, and I still get confused when it comes to power and programming languages.

Yes, I have a very vague perception of power and its relation to speed when it comes to compiling, obviously C gets compiled quicklier than Python due to it being nearier to hardware level. But, when people say that LISP is the most powerful language, where are they coming from? I think I may have an idea.

At first contact, LISP seems like a no-nonsense language, every written block is made with a very efficient and classy alure. No extra lines, no prints necessary, no return statements, you want to know what 2+2 equals? (+ 2 2)  there you go, enjoy your 4. LISP gives you the tools (or, actually, no tools at all) to write complex functions in very few lines of code. On top of it all, LISP's code is highly maintainable, with only a few lines to analyze, you should be sure that if a block is doing it's job properly, then there is no better way for it to do it.

Its no wonder Viaweb could take off with such an unused little gem of the developing world, thanks to recurssion, LISP code basically writes itself. Not sure if there's such thing as a "most powerful" programming language, but, LISP comes very close to achieving this.

lunes, 22 de agosto de 2016

The Semicolon Wars (Commentary(hate I Lisp))



I have already mentioned how the IT industry is a thriving colony of oddballs and nerds. This assertion may make it sound like a place not accessible to any other mortal individual, but, in truth, the IT industry is a microcosmos in all rights, there will always be a diversity of opinions on varying subjects such as Operating Systems, hardware models or brands, and, as it has been proven to be anthropologically logical, programming languages.

I'm guilty of participating in these (sometimes asinine, I must admit) goofy debates over wether Java is a better platform for Android development than Swift (this was a project at some point, and I'm grateful for its failure), or why I  always end my statements with a semicolon even if I'm writing an essay on Microsoft Word; It's only natural for human beings to be so set on their opinions and dogmas when it comes to the "correct" way to do things, but, in the end, there's no true "best language", they all serve a different purpose and it is wise to learn as many as them as possible if even at a very basic level.

One of the sparkling gems of this particular article is the brief explanation of the different programming paradigms, the meaning of "functional programming" (or the pursuit thereof) vexes me, but this does a good job at least explaining what LISP and other languages are used for. 

I think I'll stick to Java and other clunky object-oriented languages like C#, at least those guarantee I won't end up breaking my '(' and ')' keys.



miércoles, 10 de agosto de 2016

Triumph of the nerds Part I: Impressing their friends (Commentary)


I have always been a fan of the unusual siliness surrounding the IT industry. It's uncanny how an industry usually displayed as "gray" or "lifeless" can contain such witty quirks as naming your first program "Hello World" or the implementation of unusual (mainly useless) methods such as Android's isUserAGoat(). After watching this documentary it is no longer a mystery for me from where do these excentric outbursts come.

Nerds, the pariahs of academic life, those who take shelter in their own hobbies and interest from life's more serious aspects. They are responsible for the creation and accidental proliferation of one of the most substantial aspects of our daily lives in this day and age. Why do I call it "accidental"? We can see how the IT industry began with a bunch of hobyists toying around with machines and gadgets, mainly just having fun and, of course, in the process, as it is natural of any kind of playtime, their excentricities were impregnated in the very foundation of the IT industry. It is too late to change the silly nature of programming, just look at the pletora of so-called esoteric programming languages that spawn every other day. The IT industry is still a paradise for nerds and hobyists, and that's the way it has been growing, specially when it comes to the open source cult, but that's another topic entirely.

It is funny (and extremely moving, if not cheesy) how inspiration and the desire to have fun could give birth to such a big and economically monstruous industry, just by toying around with old mathematical concepts and a big ugly gray box. The history of modern computing is the history of childhood itself, and our child in question is just about to reach puberty and the changes to come, promise to be big.

About me

This blog is entirely dedicated to the asignature of programming languages imparted by Profesor Ariel Ortíz Ramírez. It will be updated weekly with the topics corresponding to each session.

My name is Francisco Geada Rodríguez, I'm a student majoring in computer systems,  free lancer android developer,  radio DJ, gamer, son, brother, and friend depending on who you're asking.

My interests include but are not limited to music, videogames, literature, history, comics, movies, philosophy, science, and computer sciences, and my hobbies are playing videogames (I could end the list here, I spend a lot of my time playing videogames), learning to code, playing guitar, reading, writing (in a very amateur fashion), and watching movies

I have a black cat named Mikael who I love very dearly, two dogs, as well as two younger brothers. I speak english, spanish, german (to some extent) and french (to a lesser extent than german), and the programming languages I feel comfortable with are Java, Ruby, C#, C, and Python,  I'm also currently learning Javascript.

I look forward to this course because, so far, we have only seen the practical side of programming, a code monkey's job, so to say, and we have only seen some very few paradigms.