I know that it is helpful at times to realize that invention and innovation could happen in a myriad of ways, but I don't think that is a fair way of looking at things in this case, or in many cases.
Without the invention of the mouse, we might all still be using trackballs. A mouse to me is not an "A ha!" invention. I remember when I first used one that it seemed silly to move a trackball around upside-down like that.
And without laser printing, we might all still be using ribbon cartridges at work, because of time/cost concerns with inkjet.
Everything that happens can have profound effects on the future. Think of the Challenger and Columbia disasters. While it's true that the American public had somewhat lost interest in the shuttle program prior to the Challenger disaster, they didn't think of it as risky or dangerous. Think of the lives that would have been saved and how much farther along we might be in space exploration had greater precaution been taken.
>Without the invention of the mouse, we might all still be using trackballs. A mouse to me is not an "A ha!" invention.
A ha! was to me when i first time used trackball instead of mouse. It was so great, such fast and precise movements (don't remember the game though :) And if i remember correctly people with carpal tunnel get trackball instead of mouse.
>Everything that happens can have profound effects on the future. Think of the Challenger and Columbia disasters. While it's true that the American public had somewhat lost interest in the shuttle program prior to the Challenger disaster, they didn't think of it as risky or dangerous. Think of the lives that would have been saved and how much farther along we might be in space exploration had greater precaution been taken.
i come from different school of thought. Whatever number of butterflies somebody squash today, it may (and will) affect only small details of the future while the whole system's trajectory will still be in the same volume of phase space as it determined by the macro conditions (like energy constraints, etc...).
>farther along we might be in space exploration had greater precaution been taken
the technological civilizations follow typical path. A bit faster, a bit slower doesn't matter. What matters is whether given technological civilization hits a bifurcation point like all-out nuclear war or uncontrollable climate change or uncontrollable run-away genetic development or implosion into ant-colony state as result of members being "always connected" ...
> Most “scripting” languages don't support annotations for checking parameters and return values
I coded in Java for many years and Ruby for the last several, the lack of explicit type checking in method signatures or via annotations built into Ruby has not gotten in the way enough where I felt I needed to add something to decorate methods to do some generic form of type checking in Ruby. When I really need to check the type of an object sent into a method, it is typically a method that can handle different types, and in that case, I'll use respond_to?(...) to see that an object passed in as an argument responds to a method, use a case statement, is_a?(...), etc. but that is certainly not on every method- probably more like 1 in 20-30 methods.
Also, in the comparison section of the doc, OCaml and Python were represented, but not Ruby. As of late 2013, there are more jobs containing "Ruby" in the job description than "OCaml": http://www.indeed.com/jobtrends?q=ocaml%2C+ruby&l= So, imo it should give Ruby some love with a comparison.
and the examples themselves just look a little crazy, imo. Not crazy because of what you are trying to do, but in how you are trying to do it. What was the intent of calling a method that defines an argument without an argument? That's not a problem of the language; that's just an error in coding. There are all kinds of things in Ruby to handle method definition. Arguments can have defaults. You can use splat and unsplat to handle unspecified arguments and composing arguments of various # on the fly. You can pass in blocks specifically (&something) or optionally (yield, etc.). Procs allow argument sillyness and returning the parent method by explicit return in the proc body, lambdas don't, etc. Ruby is a great language, and you should give it a college try for several months to get the hang of it.
By the same token, I have no clue what you are trying to do here:
def f(x); def g(y); x + y; end; g(2); end; f(2)
# undefined local variable or method `x'
You can define methods on object instances, if that is what you are getting at (define_method/class_eval/etc.), and getting familiar with blocks, procs/lambdas might help. It isn't JavaScript, but I can't think of that much that I couldn't do in Ruby (barring high performance, compile-time type checking, etc.)
I appreciate the examples may not be working for you. We'll try to improve them.
However: Some of our programming environment's server infrastructure is built in Ruby (mainly because it has great git support, and we commit all edits to repos). One of Pyret's lead developers spent over a year on a widely-used RoR system. We've given it far more than the old collegiate try. Some of us have lived in it.
If you're happy with Ruby, great! We're not trying to convert you. But there are people who would find the Ruby code we've written "natural" and the resulting behavior thus unnatural.
Though we had a bit of fun in the past when multiple people are merging migrations at once, since it keeps version #s in the bottom of structure.sql and that can get out-of-whack if things aren't handled carefully, using structure.sql (config.active_record.schema_format :sql) is really not a bad way to handle a legacy schema/DB, depending on your process and requirements.
I think Raleigh is the best bang for the buck for tech, food, drink, and residence anywhere in the U.S.
Downtown Raleigh has art festivals, music festivals (Hopscotch, Wide Open Bluegrass), Red Hat amphitheater, and Duke Energy Center for the Performing Arts (including Meymandi Concert Hall, Fletcher Opera Theater, Kennedy Theater, Memorial Auditorium), etc. There are a lot of great restaurants within walking distance of some nice/fun bars. You don't even have to walk or ride; they have a Trolley you can ride for free (or rent!), a Trolley Pub (bike bar), rickshaws, etc. There are clubs (various kinds and each age groups), but that's not as much my scene anymore. They are to a saturation point with microbrewing companies in the area, they have so many: http://www.ncbeer.org/brewery-map/ And that's not all of Raleigh, e.g. North Hills has been having great free outdoor concerts with a few great bars (and a great grocery store if you want to be cheap) right next to it, which has been our fav recently. It is basically everything you love about a "small town" (great people, community, lower cost of living) in a well-educated and resourced area (NCSU, UNC-CH, Duke Univ. and too many tech companies to mention) with plenty of great places to eat and things to do.
But, Durham has DPAC, lots of great restaurants, a good startup scene, including areas devoted to startups like the Underground in the American Tobacco District next to DPAC and the Durham Bulls ballpark (where they do concerts, too.), etc.
And for the best hole-in-the-wall places to eat, you just have to ask around enough, like anywhere else. It might be a hot pot Chinese place in some random Morrisville strip mall, etc.
Used to live there. Now live in SF. Could never live in Raleigh again and I only go to visit family. It's entirely too car focused and the tech community is trivial in size compared to SF. The only active meetup group I came across while visiting recently with solid engineers was the Ruby Brigade. However with Relevance in Durham, I imagine there is a solid Clojure community in the area as well.
If you don't mind cars, the quality of live if pretty great, however it kills me that it is just far enough from the mountains and the beaches for either to be convenient. Freshwater lakes aren't too far, but too much of those nearby are in the watershed supplying water to the area so recreational usage is highly restricted.
It just depends what you're looking for and what you mean when you say "tech commnunity". Most of the big guys have either a major presence or a remote office here, and even more have work-from-homers. Even with Ericsson gone, IBM dwindling and Nortel out of business (but Ciena & Genband are doing great and picked up quite a bit of Nortel real estate in RTP), they've been replaced by Cisco, eXtreme Networks, NetApp, EMC, RedHat, SAS, etc. Heroku, Google, Salesforce, Zend, and a whole bunch more have smaller presences and you regularly run into people working either for startups or smaller tech companies as remote staff. Yes, it's indisputable that the culture is 180 degrees from SV, but if you're past the post-uni honeymoon period and are raising a family, I think most would be hard pressed to quantify SV as preferable to RTP using most measures. Public schools are far better (and there are very good private schools for the so-inclined), everyone is more relaxed, we have four seasons, real estate is affordable (my very nice 4300sqft house in a neighborhood of similar homes was under $500k), and the populace is very well educated (Chapel Hill supposedly has the highest PhD population per capita in the country). It's just that the people living here generally are here because their priorities are different than technology professionals in LA/SF/SV/NY.
And besides all the actual tech companies, there are great tech opportunities in banking if you go to Charlotte, in biotech (all the big pharmas and a lot of the smaller/startups are in and around RTP), and pure science. Just like the Bay Area has Stanford & Berkeley, we have Duke, UNC, and NCSU -- similarly high quality educations, just with a different focus.
In any case, I'm not trying to convince anyone you're wrong, but there are multiple angles to every story and RTP is definitely a good option for a lot of people. Two of my best friends in my neighborhood are relos from California (one from the LA area and one who worked for Heroku in SF), actually.
+1 on the noise canceling headphones. They're best at canceling ambient noises. Human voices around you do tend to somewhat leak in. Thats suppressed too if you put some music on. The other advantage is that you tend to hear music on much lowers volumes since a lot of the background noise is cut out.
Also fit for livestock, but difficult to bale. And used medicinally (anti-inflammatory, antimicrobial to treat headaches, tinnitus, vertigo, Wei syndrome, alcoholism and hangover), and even for basketry. Unfortunately, the U.S. just considers it a nuisance and doesn't take advantage of it.
Metric time is fun, but why not take it a step further and abandon the metric system, which places too much emphasis on base 10? We used the (21 cm) hydrogen line in the Pioneer plaque; if we don't use metric with our potential cosmic neighbors, isn't that a sign we should reconsider its usage?
This is at once a brilliant and useless post. The brilliance is that of course you should provide something that people need that is risk averse, and using the analogy of making tires during the transitional period of wagon to automobile works well. The uselessness is both that everyone cannot make tires, literally or figuratively, and it is very difficult to know what the modern day "tire" is. Is it long lasting, high output energy source? Is it an internet-independent lifestyle-enhancer? Does it make me more energetic without unwanted side-effects or risk to my long-term health?
Also I think it is mostly a gross oversimplification. One could make the argument that a horse and buggy manufacturer is in almost an entirely different manufacturing business than an automobile manufacturer, and thus no more qualified to launch a successful automobile manufacturing business than any upstart. Just because they compete for the same customers doesn't mean they both have the same capabilities.
I would also like more evidence that there was a higher win percentage for tire manufacturers than automobile manufacturers to support the argument that tires were the better business.
"...and it is very difficult to know what the modern day "tire" is."
And this difficulty resolves your first point about not everyone being able to make tires!
My guess at a couple of tires: bags/cases and notebooks. Every new shiny device needs a case and people seem to be carrying more than ever around with them. Paper notebooks of various types have really taken off recently.
Without the invention of the mouse, we might all still be using trackballs. A mouse to me is not an "A ha!" invention. I remember when I first used one that it seemed silly to move a trackball around upside-down like that.
And without laser printing, we might all still be using ribbon cartridges at work, because of time/cost concerns with inkjet.
Everything that happens can have profound effects on the future. Think of the Challenger and Columbia disasters. While it's true that the American public had somewhat lost interest in the shuttle program prior to the Challenger disaster, they didn't think of it as risky or dangerous. Think of the lives that would have been saved and how much farther along we might be in space exploration had greater precaution been taken.