:-(

Someone needs to make a "C++ for Ruby programmers" book. I'm getting
assigned to work on a C++ project now and it's making me cry. Not
only have I forgotten all of the C++ that I used to know, I actually
have to compile stuff!

I guess I should get more experienced in C++, as variety is good. But
it's still painful.

Joe

Heres a patch

Tsume

--- Programming_Project.old 2006-02-28 10:42:13.000000000 +0900
+++ Programming_Project 2006-02-28 10:43:57.000000000 +0900
@@ -1 +1 @@
-Project must be creating using C++
+Project must be creating using C++. Also, embedding ruby is okay.

···

On Tue, 2006-02-28 at 10:12 +0900, Joe Van Dyk wrote:

Someone needs to make a "C++ for Ruby programmers" book. I'm getting
assigned to work on a C++ project now and it's making me cry. Not
only have I forgotten all of the C++ that I used to know, I actually
have to compile stuff!

I guess I should get more experienced in C++, as variety is good. But
it's still painful.

} Someone needs to make a "C++ for Ruby programmers" book. I'm getting
} assigned to work on a C++ project now and it's making me cry. Not
} only have I forgotten all of the C++ that I used to know, I actually
} have to compile stuff!
}
} I guess I should get more experienced in C++, as variety is good. But
} it's still painful.

Think of the compiler as the interpreter, and templates as duck-typed Ruby.
Do as much as you can with meta-programming, since it should be comfortable
from a Ruby background. The rest... the rest is just syntax.

} Joe
--Greg

···

On Tue, Feb 28, 2006 at 10:12:22AM +0900, Joe Van Dyk wrote:

In addition to what the others mentioned, you can also write Ruby code
that spits out C++ for you:
http://www.codegeneration.net/cgia/

···

On 2/27/06, Joe Van Dyk <joevandyk@gmail.com> wrote:

Someone needs to make a "C++ for Ruby programmers" book. I'm getting
assigned to work on a C++ project now and it's making me cry. Not
only have I forgotten all of the C++ that I used to know, I actually
have to compile stuff!

I guess I should get more experienced in C++, as variety is good. But
it's still painful.

Joe Van Dyk wrote:

I guess I should get more experienced in C++, as variety is good. But
it's still painful.

As a professional software engineer, I've used a number of different
languages throughout my career, both professionally and personally. I
agree that variety is good; the more languages you've used, the broader
your perspective gets and the better a programmer you become
indepentent of the language that you're currently using.

That said, it's been almost 4 years since I've had to code in C++, and
I'll die a happy man if I never have to use that particular language
again. :-/

As I've been painfully drudging through a C++ & OO Design course, I've
found that using Rake for automating builds and Cutee for unit tests
makes life a little less... sucky?

···

On 2/27/06, Joe Van Dyk <joevandyk@gmail.com> wrote:

Someone needs to make a "C++ for Ruby programmers" book. I'm getting
assigned to work on a C++ project now and it's making me cry. Not
only have I forgotten all of the C++ that I used to know, I actually
have to compile stuff!

I guess I should get more experienced in C++, as variety is good. But
it's still painful.

Joe Van Dyk wrote:

Someone needs to make a "C++ for Ruby programmers" book. I'm getting
assigned to work on a C++ project now and it's making me cry. Not
only have I forgotten all of the C++ that I used to know, I actually
have to compile stuff!

I guess I should get more experienced in C++, as variety is good. But
it's still painful.

I love the C++ programming language. I'm not going to compare it to other languages (and thereby risk jihad), but there is a part of me that will always consider C++ the One True Language. It is extraordinarily verbose, and the syntax, uh, leaves something to be desired, but C++ offers remarkably powerful facilities at both the lowest and the most abstract levels. It has fantastic support for both static and dynamic techniques, and a well-tuned C++ program can have mind-blowingly great performance without sacrificing conceptual simplicity.

If you have any trouble at all, surf on over to comp.lang.c++.moderated. You may be as amazed as I always am at the brilliance of many of the contributors. Wear your thick skin, though; the conversation tends to be a little harsher there than in the dynamic language groups. :slight_smile:

Someone needs to make a "C++ for Ruby programmers" book. I'm getting
assigned to work on a C++ project now and it's making me cry. Not
only have I forgotten all of the C++ that I used to know, I actually
have to compile stuff!

Well, I'm sure this is still limited, but maybe it's a ray of hope:
http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-talk/140888?140716-143055

···

On 2/27/06, Joe Van Dyk <joevandyk@gmail.com> wrote:

I guess I should get more experienced in C++, as variety is good. But
it's still painful.

Joe

--
Bill Guindon (aka aGorilla)
The best answer to most questions is "it depends".

Just include the Ruby extension binaries and write it using the Ruby C calls!

···

On 2/27/06, Gregory Seidman <gsslist+ruby@anthropohedron.net> wrote:

On Tue, Feb 28, 2006 at 10:12:22AM +0900, Joe Van Dyk wrote:
} Someone needs to make a "C++ for Ruby programmers" book. I'm getting
} assigned to work on a C++ project now and it's making me cry. Not
} only have I forgotten all of the C++ that I used to know, I actually
} have to compile stuff!
}
} I guess I should get more experienced in C++, as variety is good. But
} it's still painful.

Think of the compiler as the interpreter, and templates as duck-typed Ruby.
Do as much as you can with meta-programming, since it should be comfortable
from a Ruby background. The rest... the rest is just syntax.

} Joe
--Greg

--
-Dan Nugent

1. Templates (that aren't in the STL) scare me.
2. I've looked at the source code for the Boost library and ran away screaming.
3. If I did write code like that, then not many people in my group
would be able to easily grok my code. Perhaps they'll just need to
bone up on the newest C++ stuff and read the requisite 8 books before
touching my code.

···

On 2/27/06, Gregory Seidman <gsslist+ruby@anthropohedron.net> wrote:

On Tue, Feb 28, 2006 at 10:12:22AM +0900, Joe Van Dyk wrote:
} Someone needs to make a "C++ for Ruby programmers" book. I'm getting
} assigned to work on a C++ project now and it's making me cry. Not
} only have I forgotten all of the C++ that I used to know, I actually
} have to compile stuff!
}
} I guess I should get more experienced in C++, as variety is good. But
} it's still painful.

Think of the compiler as the interpreter, and templates as duck-typed Ruby.
Do as much as you can with meta-programming, since it should be comfortable
from a Ruby background. The rest... the rest is just syntax.

} Joe
--Greg

No MINASWAN to protect you over there? :frowning:

···

On 2/28/06, Jeffrey Schwab <jeff@schwabcenter.com> wrote:

If you have any trouble at all, surf on over to comp.lang.c++.moderated.
  You may be as amazed as I always am at the brilliance of many of the
contributors. Wear your thick skin, though; the conversation tends to
be a little harsher there than in the dynamic language groups. :slight_smile:

In article <20060228014338.GA22949@anthropohedron.net>,

···

Gregory Seidman <gsslist+ruby@anthropohedron.net> wrote:

On Tue, Feb 28, 2006 at 10:12:22AM +0900, Joe Van Dyk wrote:
} Someone needs to make a "C++ for Ruby programmers" book. I'm getting
} assigned to work on a C++ project now and it's making me cry. Not
} only have I forgotten all of the C++ that I used to know, I actually
} have to compile stuff!
}
} I guess I should get more experienced in C++, as variety is good. But
} it's still painful.

Think of the compiler as the interpreter, and templates as duck-typed Ruby.
Do as much as you can with meta-programming, since it should be comfortable
from a Ruby background. The rest... the rest is just syntax.

Lots and lots of syntax....

Just a crazy idea: we've got SWIG that lets us access our C++ objects in Ruby,
how about something that goes the other way so that Ruby class definitions get
translated to C++ code?

Phil

Joe Van Dyk wrote:

···

On 2/27/06, Gregory Seidman <gsslist+ruby@anthropohedron.net> wrote:

Do as much as you can with meta-programming, since it should be comfortable
from a Ruby background. The rest... the rest is just syntax.

} Joe
--Greg

1. Templates (that aren't in the STL) scare me.
2. I've looked at the source code for the Boost library and ran away
screaming.
3. If I did write code like that, then not many people in my group
would be able to easily grok my code. Perhaps they'll just need to
bone up on the newest C++ stuff and read the requisite 8 books before
touching my code.

Does this help?

  template<typename duck>
  void quack(duck& d) { duck.quack(); }

E

--
Posted via http://www.ruby-forum.com/\.

Joe Van Dyk wrote:

1. Templates (that aren't in the STL) scare me.

#include <iostream>

template<int i> struct Factorial {
        static const int F = i * Factorial<i-1>::F;
};

template<> struct Factorial<1> {
        static const int F = 1;
};

int main() {
        std::cout << Factorial<5>::F << std::endl;
        return 0;
}

Now that wasn't so scary, right?

2. I've looked at the source code for the Boost library and ran away
screaming.

Setting your font size smaller — to 1pt, for example — can help with
that.

3. If I did write code like that, then not many people in my group
would be able to easily grok my code. Perhaps they'll just need to
bone up on the newest C++ stuff and read the requisite 8 books before
touching my code.

Well, perhaps they'd decide to read the much smaller stack consisting of
the Pickaxe book first, then :smiley:

Joe Van Dyk wrote:

} Someone needs to make a "C++ for Ruby programmers" book. I'm getting
} assigned to work on a C++ project now and it's making me cry. Not
} only have I forgotten all of the C++ that I used to know, I actually
} have to compile stuff!
}
} I guess I should get more experienced in C++, as variety is good. But
} it's still painful.

Think of the compiler as the interpreter, and templates as duck-typed Ruby.
Do as much as you can with meta-programming, since it should be comfortable
from a Ruby background. The rest... the rest is just syntax.

} Joe
--Greg

1. Templates (that aren't in the STL) scare me.

They shouldn't. Read C++ Templates by Vandevoorde & Josuttis, and you'll never want to delay anything until run-time again.

2. I've looked at the source code for the Boost library and ran away screaming.

Most people do. Boost is notoriously hard on compilers. Most C++ code does not look like Boost. It does give you a tremendous amount of functionality in one fell swoop, but you probably don't need it.

3. If I did write code like that, then not many people in my group
would be able to easily grok my code. Perhaps they'll just need to
bone up on the newest C++ stuff and read the requisite 8 books before
touching my code.

1. You don't have to write code like that.

2. This "stuff" is not new.

3. Expecting the people who read your code to know the basics of the language is not unreasonable, especially for such an incredibly well-documented and standardized language.

···

On 2/27/06, Gregory Seidman <gsslist+ruby@anthropohedron.net> wrote:

On Tue, Feb 28, 2006 at 10:12:22AM +0900, Joe Van Dyk wrote:

E. Saynatkari wrote:

Joe Van Dyk wrote:

Do as much as you can with meta-programming, since it should be comfortable
from a Ruby background. The rest... the rest is just syntax.

} Joe
--Greg

1. Templates (that aren't in the STL) scare me.
2. I've looked at the source code for the Boost library and ran away
screaming.
3. If I did write code like that, then not many people in my group
would be able to easily grok my code. Perhaps they'll just need to
bone up on the newest C++ stuff and read the requisite 8 books before
touching my code.

Does this help?

  template<typename duck>
  void quack(duck& d) { duck.quack(); }

(Insert about eight thousand lines of compilation
errors and then s/duck.quack/d.quack/.)

E

E

···

On 2/27/06, Gregory Seidman <gsslist+ruby@anthropohedron.net> wrote:

--
Posted via http://www.ruby-forum.com/\.

Mine compiles faster:

#include <iostream>
int main( ) {
      std::cout << 120 << std::endl;
}

···

On Mar 1, 2006, at 10:00 AM, Anthony DeRobertis wrote:

Joe Van Dyk wrote:

1. Templates (that aren't in the STL) scare me.

#include <iostream>

template<int i> struct Factorial {
        static const int F = i * Factorial<i-1>::F;
};

template<> struct Factorial<1> {
        static const int F = 1;
};

int main() {
        std::cout << Factorial<5>::F << std::endl;
        return 0;
}

Now that wasn't so scary, right?