|
leppie wrote: But how many others simply cannot use it?
Cannot? Nobody is prevented from using Ruby. It works on various platforms, much like other languages. It is even gaining support in the .NET Framework.
leppie wrote: How many users does actually know that Ruby support continuations, and know how to use them?
Those that do, do and those that don't, don't. Much like other languages with certain features.
leppie wrote: From what I have seen, and this is purely based on the 'Rails' concept, Ruby is very much like a tricycle with training wheels.
I have no idea what that means? Tricycle with training wheels?
leppie wrote: Although big, the Ruby community does not seem very 'stable'.
What is unstable about it? I have been using it for 3 years now and had no "stability" problems.
regards,
Paul Watson
Ireland & South Africa
Fernando A. Gomez F. wrote: At least he achieved immortality for a few years.
|
|
|
|
|
Paul Watson wrote: I have no idea what that means? Tricycle with training wheels?
I meant it as 'very guiding' like someone holding your hand throughout.
Paul Watson wrote: What is unstable about it? I have been using it for 3 years now and had no "stability" problems.
I am sure the language is stable (and indeed very usable), I was rather referring to the user community. It always seems like there is drama
I have nothing per se against Ruby, but it seems the way it's being used and promoted it will turn into the modern day VB, albeit with a bit more style.
|
|
|
|
|
leppie wrote: It always seems like there is drama
If you mean that one rant by that one chap then... *shrug* it has nothing to do with the language and none of the Ruby user community I interact with was affected. I've seen plenty of "drama" in the C#, C++ (all that "standards" talk sure gets heated) and Java communities. Doesn't seem to stop people getting work done.
leppie wrote: I meant it as 'very guiding' like someone holding your hand throughout.
It is a high level "scripting" language. For a lot of programming you don't need a language that has a gun pointing at your foot.
regards,
Paul Watson
Ireland & South Africa
Fernando A. Gomez F. wrote: At least he achieved immortality for a few years.
|
|
|
|
|
leppie wrote: Scheme
There is "Lisp".
|
|
|
|
|
Scheme and Lisp is quite far apart, well since 1976. Normally Lisp would be associated with Common Lisp. The differences in variable scoping make them more different than say Java vs C#.
|
|
|
|
|
Can't say I am an expert for Lisp, but most texts agree that CL and Scheme are the two major dialects of Lisp. See here[^], for instance.
leppie wrote: more different than say Java vs C#.
That doesn't say much Java and C# are really the same thing.
|
|
|
|
|
Machine code is the way! Let's all program in machine code again!
To those who understand, I extend my hand.
To the doubtful I demand: Take me as I am.
Not under your command, I know where I stand.
I won't change to fit yout plan. Take me as I am.
|
|
|
|
|
Hi
01011001 11010010 11010010 10001110 00101010 OK?
|
|
|
|
|
Why not just go back to flippin switches?
|
|
|
|
|
mmm, dipswitches, drool
|
|
|
|
|
You guys are too high level. Get out the soldering gun...
|
|
|
|
|
No, I have jumper cables ready
|
|
|
|
|
Enough laugh. The point of learning machine code (or, at least, assembly language) first is that
1. You learn that, what runs software, is hardware. And hardware has physical limitations. You want an efficient program? Do your best to write an efficient implementation!
2. When you start using languages that make your life simpler (or, at least, less complicated, like C), you don't that simplicity for granted, but actually appreciate it.
To some degree, programmers who don't understand the value of low level languages remind me of users who don't understand the value of the software they use. They take it for granted and they want it to do things right (sometimes, despite the fact they have given the wrong input!!!).
To those who understand, I extend my hand.
To the doubtful I demand: Take me as I am.
Not under your command, I know where I stand.
I won't change to fit yout plan. Take me as I am.
|
|
|
|
|
I think this way of thinking makes a lot of sense. I totally agree.. BUT
Is assembly really the best choice for a NEW programmer? I think they will give up before they get anything done.
Ask not whether it is useful. Ask what it is useful for.
|
|
|
|
|
C# and Java in the same option!
“Time and space can be a bitch.”
–Gushie, Quantum Leap
{o,o}.oO( Looking for a great RSS reader? Try FeedBeast! )
|)””’) Built with home-grown CodeProject components!
-”-”-
|
|
|
|
|
Yes, because they are essentially the same thing. :P
To those who understand, I extend my hand.
To the doubtful I demand: Take me as I am.
Not under your command, I know where I stand.
I won't change to fit yout plan. Take me as I am.
|
|
|
|
|
Bleh, from a syntax point of view maybe.
“Time and space can be a bitch.”
–Gushie, Quantum Leap
{o,o}.oO( Looking for a great RSS reader? Try FeedBeast! )
|)””’) Built with home-grown CodeProject components!
-”-”-
|
|
|
|
|
Not only the syntax. With Java/C# you also have...
0. Garbage collection, a.k.a. the programmer doesn't want to bother taking care of his pointers and he wouldn't mind sacrificing runtime efficiency for coding easiness.
1. Complex class libraries that you have to learn before you can write a decent, non-trivial application
2. OOP is mandatory, which isn't bad in itself, but...
a) Everything.IsDerivedFromABaseObjectClass() == true // yuck!
b) No multiple inheritance... WHY??? Ok, 99% of the programmers out there don't want to bother undestanding virtual inheritance. So there you have interfaces, which, IMHO, are just as (or even more) messy.
I'd love to continue with this rant, but I have to go to sleep. Sorry!
To those who understand, I extend my hand.
To the doubtful I demand: Take me as I am.
Not under your command, I know where I stand.
I won't change to fit yout plan. Take me as I am.
|
|
|
|
|
I completely agree with you. I think Microsoft was so much inspired by the Java while developing C#, there are some differences but on the core they are both same…
cout << "\0";
// its backSlashZero
|
|
|
|
|
C# isn't perfect, but at least it's not Java.
“Time and space can be a bitch.”
–Gushie, Quantum Leap
{o,o}.oO( Looking for a great RSS reader? Try FeedBeast! )
|)””’) Built with home-grown CodeProject components!
-”-”-
|
|
|
|
|
2a) is a good thing--it allows you to bypass the type system for some nifty tricks (generics can't do everything).
2b) I agree with, I wish C# had M.I.
I'd forgotten Java has G.C., it's been so long since I've used it. But personally I hate GC--that's the single biggest mistake the C# designers made. IMO
Logan
“Time and space can be a bitch.”
–Gushie, Quantum Leap
{o,o}.oO( Looking for a great RSS reader? Try FeedBeast! )
|)””’) Built with home-grown CodeProject components!
-”-”-
|
|
|
|
|
2a) isn't a good thing. Generics are bad. Templates are a lot better.
To those who understand, I extend my hand.
To the doubtful I demand: Take me as I am.
Not under your command, I know where I stand.
I won't change to fit yout plan. Take me as I am.
|
|
|
|
|
I don't recall much difference between generics and templates. Am I totally missing something?
“Time and space can be a bitch.”
–Gushie, Quantum Leap
{o,o}.oO( Looking for a great RSS reader? Try FeedBeast! )
|)””’) Built with home-grown CodeProject components!
-”-”-
|
|
|
|
|
There is a BIG difference between templates and generics.
Templates works like this:
0. Programmer writes generic function/class/whatever. Example:
// this is C++
// compiler won't generate any code from this
template <class T>
class CLinkedList
{
private:
T m_tValue;
CLinkedList<T> *m_plltNext;
public:
//...
};
1. At compile time, whenever the compiler finds an instance of the template, the program replaces all instances of the template parameters with its actual values. Example:
int main()
{
// compiler will create a class called CLinkedList<int>
CLinkedList<int> lliExample;
// compiler will create ANOTHER class called CLinkedList<double>
CLinkedList<double> lldAnotehrExample;
return 0;
}
2. At run time, the program doesn't know ANYTHING about the templates. It only knows about its specific instances (the actual functions/classes/whatever).
Generics work like this:
0. Programmer writes generic function
' this is VB.NET
' in .NET, generic classes have metadata that tell the runtime that they have parameters.
Public Class LinkedList(Of T)
Private Value As T
Private NextNode As LinkedList(Of T) ' the implicit pointer... yuck!
' ...
End Class
1. At compile time, the compiler doesn't create new classes from the generic definition.
Module Test
' I don't remember very well, but I think the VB.NET equivalent of static is Shared
Public Shared Sub Main()
' compiler will generate code that tells the runtime to replace
' the generic metadata with the actual generic parameters
Dim LLOfInt As LinkedList(Of Integer), LLOfDouble As LinkedList(Of Double)
End Sub
End Module
2. At run time, the JIT/interpreter only knows about the generic class until it finds a request to create/use an instance of a specialization of the generic.
---
Are generics more powerful than templates? No. You can do this in C++:
template <class T>
class CBox
{
public:
T content;
};
int main()
{
CBox<int> a;
CBox<double> b;
a.content = 10;
b.content = 15;
b.content += a.content; // C# equivalent can't do this
}
Are generics safer? If you can't program, yes. But we're supposed to know how to program.
To those who understand, I extend my hand.
To the doubtful I demand: Take me as I am.
Not under your command, I know where I stand.
I won't change to fit yout plan. Take me as I am.
|
|
|
|
|
leonej_dt wrote: CBox<int> a;
CBox<double> b;
a.content = 10;
b.content = 15;
b.content += a.content; // C# equivalent can't do this
I don't know why you say this. I just wrote the following version in C# with generics and it works perfectly:
class Box<T> {
public T content;
}
Box<int> x = new Box<int>();
Box<double> y = new Box<double>();
x.content = 10;
y.content = 15;
y.content += (double)x.content;
Yes, C# makes you cast the int to a double, but that's hardly a limitation.
“Time and space can be a bitch.”
–Gushie, Quantum Leap
{o,o}.oO( Looking for a great RSS reader? Try FeedBeast! )
|)””’) Built with home-grown CodeProject components!
-”-”-
modified on Monday, April 7, 2008 12:50 PM
|
|
|
|