I know this post is not really on topic, but....
I'm thinking about learning a new language, and I wanted to get some suggestions. I started out with Basic and Pascal, then spent a bit of time with c++, and now I live and breath VB.net and c#. What I'm looking for is something innovative to study. So far the contenders are Ruby, Python, and Haskell. Without starting a language war, anyone have any suggestions?
Jeff
SQL and (Oracle) PL/SQL or (SqlServer) Transact-SQL.
(And I don't mean just the simple insert one record, update one record limited sql that one finds in a typical stored procedure supporting standard data entry operations)
Your c#/vb applications will be far better if you can make full use of the database capabilities.
JZuerlein:I know this post is not really on topic, but....
I'm thinking about learning a new language, and I wanted to get some suggestions. I started out with Basic and Pascal, then spent a bit of time with c++, and now I live and breath VB.net and c#. What I'm looking for is something innovative to study. So far the contenders are Ruby, Python, and Haskell. Without starting a language war, anyone have any suggestions?
Jeff
well what do you want to get from the experience ??
not the newest but you could spend some time with:
smalltalk and lisp
-- they are where many things in .net come from, and much of the OO stuff.
for low level and different there is now a forth for .net -- look at channel9.msdn.com
http://channel9.msdn.com/Showpost.aspx?postid=225641
that would be like learning assemly languge and would get you near coding IL stuff.
T-SQL would be good for making better database stuff.
or just look at the ctp bits from microsoft on LINQ that has the betas of the next VB and C#
they are doing some really great things and need feedback on them.
look at channel 9 and msdn for info on them.
The goal is not really to learn a language I could use in a future job. It is really to understand a different approach to solving problems. I feel like I have .Net blinders on, and I want to spend some time looking at ways other languages attempt to solve problems.
On a side note, I've got about 12 SQL servers to manage at work, so I spend quite a bit of time with TSQL, but I never thought to mention it as a language. ; ^ )
Thanks,
Jeff
So, when you write code in TSQL, are your algorithms based upon sets or records?
Most people transitioning from procedural languages have a record-based processing mentality.
Set based algorithms are often much simpler and much faster.
Example:
A friend of mine was brought in to tune a new Java application's month-end processing routine. There were concerns it might be slow. He calculated how long it took to process a transaction, then checked the production system to see how many transactions had to be processed each month. Then he did the math - it would take around 25 years of processing time each month to run the month-end process.
Needless to say, that was a tad longer than they could accept. :)
So, the fastest way to try to speed things up was to take the java algorithm running on the application server and transpose it into Oracle PL/SQL (like TSQL, but more features). Same algorithm, just different syntax. Removing network traffic from the algorithm reduced the run time down to 6 months or so. Now, a fifty-fold performance improvement is pretty good, but 6 months is still too long for a month-end process!
So, at that point, he told them the fast and easy way wasn't going to cut it. He would have to understand what the algorithm was intended to do and redesign it to make use of set-based principles. When he finished, it took about 8 hours to run. A different way of thinking made a pretty big difference!
Sorry for jumping in...
David, do you have links to set based vs. record based algorithms? Or somehwere that explains what they are? I'd like to know more about that. Searched, but I guess my googler's broke.
Thanks,
Mike
I couldn't agree more with your suggestion to enbrace set based operations in TSQL. I went down the path you suggest about 4 years ago. After several months of reading Itzik BenGan's column in SQL Server magazine, it really sank in.
I'm looking for that same type of growth experience. I'm leaning towards a functional language, or maybe spending some time learning about domain specific languages.
Copyright (c) Marimer LLC