[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ale] Ruby vs C, a non-technical chat



I forgot what it?s like to be constrained by the tools available on a system. ? I?ve been lucky to be in charge of those decisions since, well, since I started in the industry actually. ? Wow, I have been lucky haven?t I?




I avoided Python for, um, yeah, 15 years before I saw the light. ? In 2009 I had to pick a principal language for a tech team of 50 with an expectation they?d grow to 100. ? As much as I enjoyed Perl when it was less than half a dozen of us, ?I couldn?t convince myself it would be maintainable for such a large team. ? ?I liked python for all sorts of reasons including that it?s easy to read, easy to hold to team to engineering standards and seemed like would give me most of what I loved from dynamic languages while also being manageable with for a large team. ?That pretty much proved out to be true though eventually I saw the warts of a dynamic language ? runtime exceptions and general code execution speed caused us some pain.




Those are some of the reasons I like Go so much. ? It?s duck typing and speed of compilation give me a lot of the joy of the dynamic languages. ? It?s designed for, ?among other things, large code bases and large teams. ? Standardizing the code style with go format (https://golang.org/pkg/go/format/) really makes it easy to read other peoples code.




It also has nice properties for:




* Code execution speed is good


* Compile speed is awesome. ?I?m told it?s more amazon on large codebases.?

* Software distribution is easy. ?You end up with system binaries as someone else noted earlier. ? No more hell of shipping something and then trying to do dependency management on a remote system you don?t control.

* It is trivial to cross compile (I do it for MacOS, x86_64, Linux arm (raspberry pi), and Windows.

* The compiler and strong typing helps me avoid runtime exceptions (while duck typing keeps me sane)

* Its standard library has great tools for quickly writing network apps.

* It is object oriented using composition instead of inheritance (this could be highly debated, but I like it)




There is also the idea that it?s build for writing concurrent programs, but I?m still, frankly, getting my head around that so I can?t say it?s (yet) a selling point for me.




I do have at least one frustration with it. ? I have yet to find a library that lets me write GUI apps with Go. ? ?Some have said that the GUI is where inheritance in OOP shines. ? I?m not sure. ? ?




Anyway, this has been fun.. I think I?ll stop now. ?:-) ??




Happy hacking,?




-Darrell




p.s if any of you have a Sharp Aquos TV with a network stack, you might find one Go program I wrote useful?




https://github.com/golliher/go-sharptv


















?http://golliher.net

On Thu, Aug 6, 2015 at 9:21 AM, leam hall <leamhall at gmail.com> wrote:

> On Thu, Aug 6, 2015 at 8:08 AM, Darrell Golliher <darrell at golliher.net> wro
> Leam,  you mentioned fun in your criteria.  I like that.    The most fun
>> I?ve had programming lately has been
>> in Go.   pro-tip for googling it is is to use ?golang?
>> https://golang.org     I?ve done basic, pascal, modular-2, assembly, C,
>> C++, Perl, Python, Javascript and probably a few others I?ve forgotten.
>> Go rocks.
>>
>> I don?t spend a lot of time thinking about it from a career path
>> perspective, but there are some signs it could prove
>> marketable, maybe.    Docker is built with it for example.  Digital Ocean
>> seems to use it a lot too.
>> Here?s a list of companies..  https://github.com/golang/go/wiki/GoUsers
>>
>> Maybe it?s never be more than a niche language ? I can?t predict the
>> future on that one.  I hear good things about Rust and with Apple?s Swift
>> being open sourced it has a shot a being generally useful too.
>> Javascript has even gotten more interesting with the rise of the node,
>> express and angular (aka. MEAN stack when you add mongoldb).
>>
>> Anyway.. I digress.  I was trying to plug Go. :-)
>>
>> cheers,
>>
>> Darrell
>>
> Hey Darrell,
> A couple years ago I looked at Go. It's touted as a systems programming
> language and since I work on systems, that seemed like a good route to
> take. I even made something nominally useful with it (
> https://github.com/makhidkarun/vargr_names/blob/master/vargr_names.go)
> Some guy named Brian is supposed to be putting out a book on it the end of
> the year (
> http://www.amazon.com/Programming-Language-Addison-Wesley-Professional-Computing/dp/0134190440/ref=sr_1_sc_1?ie=UTF8&qid=1438866668&sr=8-1-spell&keywords=brian+kernigan+go)
> and I've thought about combining the O'Reilly video course with the book as
> a Christmas gi....errr.... winter work project.   :)
> The main issue I'm trying to overcome with coding is getting work done at
> work. I've done stuff with a few languages but keep getting pulled back to
> shell or manual because that's what work supports. With Ruby, I can say
> "It's on the machines, so I can use it". Go would be a harder sell unless I
> can find a job at a Docker shop or some place that is producing system
> tools. Given my current coding skills, I see that as unlikely in the short
> term.
> Some of the skills I'm learning now should translate; writing tests, making
> the code handle errors and exceptions. Some are only useful to OO
> languages.
> Still, having fun rates high.
> Leam
> -- 
> Mind on a Mission <http://leamhall.blogspot.com/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.ale.org/pipermail/ale/attachments/20150806/407050fd/attachment.html>