Protecting Developers from Powerful Languages 23
Microsoft’s forthcoming C# version 3 has some innovative features, as described in this blog. I give the C# team credit for pushing the boundaries of C#, in part because they have forced the Java community to follow suit. ;)
A common tension in many development shops is how far to trust the developers with languages and tools that are perceived to be “advanced”. It’s tempting to limit developers to “safe” languages and maybe not all the features of those languages. This can be misguided.
Java is usually considered safe, but Java Generics are suspect. Strong typing is safe, but dynamic typing isn’t controlled enough. Closures and continuations sound too advanced and technical to be trusted in the hands of “our team”.
To be fair, larger organizations have more at stake and caution is prudent. Regrettably, it is also true that many people in our profession are … hmm … not that well qualified.
However, I find that I’m far more productive and less likely to make mistakes using Ruby iterators with closures than writing more verbose and inelegant Java.
I used to be a strong believer in static typing, but it has become a distraction, as I have to worry more about the types of method parameters and return values, rather than just worrying about the values themselves. I realized that, on average in a typical section of code, the actual type of a variable is unimportant. The variable is just a “handle” being passed around. The name is always important, as it is a form of documentation. There are places where the type is important, of course, when the variable is read or written in some way.
Finally, static typing offers less security than at first appears. At best, it only confirms that variables of particular types are used consistently. Your unit tests also do this. However, static typing can’t confirm that the usage of the API is correct. This is analogous to testing the syntax but not the semantics of the program. In fact, only unit tests (or alternatives, like rspec ) are effective at testing both.
So, it’s prudent to be reticent about newer languages and features, but make sure the decisions you make about them are backed up by careful evaluation and don’t forget to train your team appropriately!
I agree with most of what you say, but this last bit rubs me the wrong way.
> Your unit tests also do this. However, static typing can’t confirm that the usage of the API is correct. This is analogous to testing the syntax but not the semantics of the program. In fact, only unit tests (or alternatives, like rspec ) are effective at testing both.
I don’t belive that to be true. It seems to me that manually creating unit tests is a poor substitution for knowing that syntax is correct. The compiler is far less likely to remember to test a particular code path than you are.
Moreover, time for testing activities is always limited. Given the choice, I would rather spend all of my unit testing time on semantics than spend half of it on syntax when a good compiler can do for me.
So you know where I’m coming from, I am a long time VB programmer who has made the transition from loosely typed pre-.NET era to strictly typed systems of VB7+. I have noticed significant gains in both performance and correctness as a result of this change.
This is not to say I don’t see the benefits for a smarter type system that heavily relies on generics and type inferance to reduce the cost of static typing.
Maybe you’d like to try a language with a better, more modern type system. Something like…
Dean > I tend to agree with Greg here: I got on that road (of hating static typing and preferring dynamically typed languages if only because they weren’t statically typed) before I discovered that all the things I hated in static typing, and all the things you hate (verbosity, lack of flexibility, redundancy, lack of “real” security) were really failure of Java, not of static type systems in general.
Then I discovered Haskell, and it blew my mind what you could get done with a static type system.
Now don’t get me wrong, I still find static type systems annoying from time to time, and I still love dynamically typed languages (I’m very fond of Python, Ruby and Erlang, and intend to learn Smalltalk in the future), but static type systems do have their use, and static type systems done well don’t hinder flexibility much while generating wealth of expressive power and safety (yes, I said it, and I’m not talking about Java here).
What of tools that are more effective in statically typed languages? To some extent they’re not as important, but I’d certainly miss intellisense were I to go back to Smalltalk or dig deeper into Ruby.
j
Jeff – being committed to TDD, I find that intellisense gets in my way more often than it helps. Maybe that’s just me.
All – I agree that better statically-typed languages exist and I have a big TODO list to learn some of them! Of course, my arguments are based a lot on the practical situations I find myself in.
Jonathan – I guess I don’t find the time trade-off of making my unit tests a little better at “syntax” checking that bad. The “total cost of effort” seems to favor dynamic languages. Maybe it’s a personal preference.
Smalltalk has intellisense, and refactoring browsers.
a refugee in a cheap hermes birkin bag a third world country.”“What people find so ???? ?? so appalling is the complete lack of jewelry replicas of communication of
There are places where the type is important, of course, when the variable is read or written in some way.
Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic. If possible, as you gain expertise, would you mind updating your blog with more information? It is extremely helpful and beneficial to your readers.
hey man,i am a first time visitor here and like your blog.
dre headphones
beats studio headphones
There are places where the type is important, of course, when the variable is read or written in some way
it is very good article. Thanks for it.
Dünyan?n en büyük online okey oyunu bu sitede sizleri bekliyor. Gerçek ki?ilerle sohbet ederek Okey Oyunu Oyna ve internette online oyun oynaman?n zevkini ç?kar
Both had been interested Metal RC Car in cars and bikes but never thought of designing one till they were told about the competition. “Our friend informed us about the competition. Nothing was planned and we went there to have fun,” says Bharucha. “I want to be an automobile journalist in the future. So I thought that this would be a perfect start for my career,” says Buhariwalla. “Rayomond designed most of the car, while I raced the car. He is an excellent designer and I had complete faith in what he was doing,” adds Bharucha.
The duo do not have a formal RC Monster Truck training in designing cars yet it was not difficult for them. “If you have to rate us in terms of report cards, we are very mediocre students though,” grins Bharucha. “Unlike engineers, we never studied cars. Our passion drove us to sketch the cars, scale it down and re-sketch it several times,” says Buhariwalla. The team is going to start working for the national championship taking place in Delhi where the Pune youngsters will compete with the best teams from across the country.
The youngsters invested in Off-Road RC Car immense team-work, mutual confidence and coordination before the final day. “It is uncanny when working in a team but we never had any differences of opinion. I knew Yazad will control our car well,” says Buhariwalla who eats, drinks and sleeps cars.
Both Bharucha and Buhariwalla 1:5 Scale RC Car would put in quality time everyday before the championships. “We looked through every website under the sun to gather knowledge about the car we are supposed to design,” says Buhariwalla. While in the process, they kept in mind a few basic necessities of car designing. “A sports car should be light weight, fast, practical and simple. We were inspired by the Japanese sports cars which are simple yet good to look at,” says Bharucha.
The Motorcycle Industry Council (MIC) reported a 7.2 percent increase in all motorcycle and scooter sales during the first quarter of 2011. BMW Motorrad is enjoying a 7.3 percent increase in BMW motorcycle sales compared to last year, while Honda scooter and motorcycle sales in May alone experienced a six percent boost. The ever-popular Harley-Davidson line continues to perform well, too.
While most welcome the Skateboard expansion of the biker community, some of the new two-wheeled riders are learning what experienced bikers have known for years: motorcyclists face a heightened risk of accident and injury, usually through no fault of their own.
Inflated gas prices have Scooter negatively impacted everyone’s budget. Many commuters have looked to hybrids and fuel-efficient cars to save money. However, a growing population of people has gone the fun and affordable route of moped, scooter or motorcycle ownership.
Motorcycle accidents killed 4,595 people in the U.S. during 2009, including 161 motorcyclists in New York, as stated by the National Highway Traffic Safety Administration (NHTSA). While these numbers show a slight – yet promising – decrease from figures in 2008, motorcycle-safety advocates fear a potential surge in motorcycle accidents this year for several reasons.
A spokesperson from electrodeless lamp Honeywell suggests that all homeowners invest in a programmable thermostat. “Twenty-five percent of consumers polled stated that they turned off their air conditioning when they are not at home as a way to save. What consumers may not know is that the amount of energy used to turn cooling and heating equipment on and off can actually cost more than keeping it running at a low level.”
If you’re struggling to induction lamp make ends meet these days, you’ve probably cut out all the obvious extras, like $5-a-day mochaccinos. But there are additional ways to save, simply by making a few adjustments in your home. And here’s some extra motivation: These tips are also good for the planet, so no excuses!
Dimming your lights can help save on your electric bill. Many Electrodeless Induction Lamp overhead lights have dimmers (be sure to use them!), but you can also dim your standing lamps with a Credenza Plug-In Lamp Dimmer ($12.97) by Lutron.
This is really Mechanical Engineering Job Description satisfied by the great Chief Executive Officer Job Description info is visible in this blog that to amazing technology is visible in this blog. I was searching for the genuine info which Desktop Support Job Description I found the great info and using really superb Police Officer Job Description technology in this blog. This info is useful info in this blog
When it comes to feather dress, what appears in your mind? Which kind brand of down jacket do you like prefer? Though there are many down jackets for you to choose from, on the word, which one you really enjoy? I want to say that canada goose coats is really your best choice. I believe you can’t agree with me any more. When you take the quality into consideration, you will find that it is superior to any other kind of coat. Besides, discount canada goose jackets is a world well-known brand, which has gained high reputation in the world, which has accepted by our customers and some organization. Because of its high quality, some of our loyal customers have promoted it to the people around them. In their opinion, it is good to informing others to know it. Recently, Canada Goose Trillium Parka is on hot sale. What I have to inform you is that all the products there are made by hand, so they are elaborative and elegant enough. It is really beautiful once you dress in. So, if you are a lovely girl or woman, go to the store to buy one for you. You will appreciate it that you have such a coat.In addition, they also have any other products like canada goose Gloves and canada goose jacket supplier.Hope your will like its!
Wear women jordan high heels in a split second sexy, charm and confident outbreak, twisting the waist is born swaying pose. High heels as if the women winning weapons, a pair of high-heeled heels, the increase absolutely is not only highly, but from the heart of the confidence and poise.
cigarettes online history of aircraft manufacturing is full of so many exciting designs and displays. A flying machine concept has cheap cigarettes shop the maximum significance and has turned to a vital manufacturing industry since decades.
Yellow and black [url=http://www.nikekengriffeysneakers.com][b]Ken Griffey Sneakers[/b][/url], forming strong contrast, let her dress is very important, increase the lively feeling, plus vice hip gloves, success amorous feelings small and medium-sized handsome.
Small handsome boy [url=http://www.nikekengriffeysneakers.com][b]Ken Griffey Jr Shoes[/b][/url], chest red and the red handkerchief let famous youthful vitality of the feeling, is handsome feeling hat is trivial, in his air Jordan with the shoe, prevent hip strength is also very size, are very credit mode. This type of air Jordan and the child’s [url=http://www.nikekengriffeysneakers.com][b]Nike Ken Griffey Sneakers[/b][/url] positive broken flower skirt outfit, although have a little color depth, but broken flower skirt let YueDongGan dyewoods. Red leather shoes leather shoes embroidery, how can you not handsome!
Yellow and black [url=http://www.nikekengriffeysneakers.com][b]Griffey Sneakers[/b][/url], forming up let her dress is very important, increase the [url=http://www.nikekengriffeysneakers.com/ken-griffey-shoes-2012-c-52.html]Griffey Shoes 2012[/url] lively feeling, plus vice hip gloves, success amorous feelings small and medium-sized handsome.[url=http://www.nikekengriffeysneakers.com][b]Cheap Griffey Shoes[/b][/url],[url=http://www.nikekengriffeysneakers.com][b]Griffey Shoes[/b][/url] Griffey Max 1[/url] Air Griffey Max 1[/url][url=http://www.nikekengriffeysneakers.com/ken-griffey-shoes-2012-c-52.html]Ken Griffey Shoes 2012[/url] Small handsome boy, chest red and the red handkerchief let famous youthful vitality of the feeling, is handsome feeling hat is trivial, in his air Jordan with the shoe, prevent hip strength is also very size, are very credit mode. This type of air Jordan and children of broken beautiful skirt outfit the high-heeled shoes of positive, though a little color depth, but broken flower skirt let YueDongGan dyewoods. Red leather shoes leather shoes embroidery, how can you not handsome!
well. you guys really give us the sample of C++ programing skill. So. why not try this method and do a better code. next time. have another try.
Remember the days when your mother, wearing her best dress, took the hat box off the closet Tory Burch luggage shelf on Sunday morning and carefully lifted out her favorite Sunday hat. She placed it Tory Burch on her head, fastened it with a hat pin and her Sunday church ensemble was complete. In suede wedge booties years past, when you were a little boy or girl, going to church was the one day to wear dresses, hats, suits, and dress shoes.