今までどのくらいプログラミング言語を触ってきたか(3秒で飽きたものも含む)

King of Programming Language - 今までどのくらいプログラミング言語を触ってきたか(3秒で挫折したものものも含む)


私はこんな感じです。
可能な限り、触った順にしたつもり。

プログラミング言語で最初に触ったのはC++です。
printfは3ヶ月後くらいに知りました。


SchemeErlangはどうも馴染めなくて途中で投げ出してます。。。



追記id:DigitalGhostさんに「C++C++(runtime)とC++(compiletime)にわけるべきです!」って言われたので分けました。



翻訳で使っているもの

英辞郎
  単語と熟語調べるのに使う


The 翻訳 2008 ビジネス
  設定で「2段階翻訳」をONにすると精度がとてもいい
  多くの場合、ふつうに読める日本語になる


10の翻訳エンジンから一括翻訳 翻訳くらべ
  The 翻訳 2008でへんな日本語になったとき用


英語が苦手な人でも、翻訳ソフトあれば「英語を覚える」じゃなくて「英語を調べる」だけなので、
プログラマの方には翻訳ソフトをぜひ活用してもらいたいですね。


エキサイト翻訳のようなWeb翻訳だと、単語登録したり、訳の候補から選択したり、学習させたりができないので、
ローカルで使える翻訳ソフトは、ひとつは持ってると便利です。


VBで多重ディスパッチ

# VBタグ作るのがめんどいので雑記タグで。


ネタ元:Code++ - VB でマルチプルディスパッチ


VB Tips and Trips: Multiple Dispatch

Option Strict Off

Class Base
End Class

Class Derived : Inherits Base
End Class

Module Module1

    Sub Main()
        Dim obj

        obj = New Base
        Foo(obj)

        obj = New Derived
        Foo(obj)
    End Sub

    Sub Foo(ByVal a As Base)
        Console.WriteLine("Base")
    End Sub

    Sub Foo(ByVal b As Derived)
        Console.WriteLine("Derived")
    End Sub

End Module
Base
Derived

実行時型情報でルックアップしてるw



C# 4.0 でも dynamic 使えばできるとかできないとか。

こんな感じ?

using System;

namespace Program
{
    class Base {}
    class Derived : Base {}

    class Program
    {
        static void Main(string[] args)
        {
            dynamic obj;

            obj = new Base();
            Foo(obj);

            obj = new Derived()
            Foo(obj);
        }

        static void Foo(Base a)
        {
            Console.WriteLine("a");
        }

        static void Foo(Derived b)
        {
            Console.WriteLine("b");
        }
    }
}

Visual Studio 2010 CTP では Foo(obj); がコンパイル通らなかった
Foo は dynamic 型を受け取らないといけないのかな

C# Feature Focus: Dynamically Typed Objects, Duck Typing, and Multiple Dispatch



追記:id:ufcppさんからいただいた情報で、C# 4.0でも多重ディスパッチできました

using System;

namespace CsConsole
{
    class Base { }
    class Derived : Base { }

    class Program
    {
        static void Main(string[] args)
        {
            dynamic instance = new Program();

            dynamic obj;

            obj = new Base();
            instance.Foo(obj);

            obj = new Derived();
            instance.Foo(obj);
        }

        public void Foo(Base a)
        {
            Console.WriteLine("a");
        }

        public void Foo(Derived b)
        {
            Console.WriteLine("b");
        }
    }
}

いまのプロジェクト

いまは、 id:Seasonsid:melpon と一緒に iPhone のアプリ作ってます


Objective-C++ で Boost 1.36 使ってます

コンパイラGCC 4.2 (XCode)


Boost で今のところ使ってるのは、 function, bind, shared_ptr あたり


わんくま横浜勉強会#1 C++Dayでパネラーやりました。

ぼくは雑談しにいっただけですけどねw

cppll の人がいっぱいいて楽しかったです


Boost.Spirit あとで遊んでみよう。 ET も勉強しないとなー



明日はあろはくんを問い詰める会(等価変換理論集中セミナー2008)で k.inaba さんに会ってきます。