C++に対応したKylix 3発表 43
ストーリー by yourCat
C++はじめました 部門より
C++はじめました 部門より
ryoryoryo曰く、"本家でも紹介されていますが、米 Borland は Kylix の新版である Kylix 3 を発表しました。ついに C++ にも対応したようですが、これで Linux プログラマのすそ野が広がるのでしょうか。なお、オープンソースソフトウェア用のOpen Editionも従来通り無償提供され続けるようです。"
待望久しいC++対応版だ。Object Pascalもいいんだろうけれど、やっぱり……ね。Kylix 2 Open Editionは日本語版も用意されたし、今回も期待しちゃおう。
Average曰く、"ただ、ダウンロードページにはまだKylix 3の文字はありませんが・・・" がくっ。
Delphi language (スコア:3, 興味深い)
Re:Delphi language (スコア:1, 参考になる)
gladeってマイナー? (スコア:3, 興味深い)
もちろんKylixなどの統合開発環境とgladeやgccやvi/emacsなどを使ったツールの集合体ではレイヤが違うという見方もあるでしょうが、 元々Unixでは、一つの大きな統合環境を作り上げるのではなく、個々の機能に特化したツールを組み合わせて同じ事を成し遂げるという思想がある訳で、私はKylixみたいな統合環境にはMultics的な一種イヤらしさを感じます。
(宗教戦争(^^;が起きそうですが、emacsも同様な感じがするので私はvi派)
# で、日々gladeとviでXアプリを作ってたりします
Re:gladeってマイナー? (スコア:0)
Re:gladeってマイナー? (スコア:1)
Kylix自体が良いものである事は否定しません。
私が言いたかったのはKylix自体の良し悪しじゃなくて、 他にも良いものもあるのに、商用製品ばかりが「開発環境です」と取り上げられているのは残念だな...と
そりゃ「統合環境」という土俵で勝負したんでは元々勝負は決まってるでしょうね。gladeはあくまでもUIビルダだから、直接勝負するようなもんじゃない。
コンビニとお弁当屋さんで勝負して「コンビニは24時間開いてて他にも色々売ってて便利だからコンビニの勝ち」と言っているようなもんで...
# 喩えが下手だな>私
Re:gladeってマイナー? (スコア:1)
だからDelphiでも本人がgladeの様に使う、と言うので有ればそれもオッケーでしょう。じっさい、使い慣れたエディタでコーディングするのはイイですよねー。
で、UIビルダー単体として見てもkylixは結構優秀なんじゃないでしょうか。
-----------------
#そんなワタシはOS/2ユーザー:-)
Re:gladeってマイナー? (スコア:1)
というか、GUIビルダが単体で存在し、コードへの干渉(^^;とは独立しているようなシステム形態だと、
開発ツールとしての最終的な使い心地は良くない、というのが
Delphi(系)がもたらす教訓(?)から逆算して言えることなんじゃないかな。
かといって、VC++みたいに(ぉ)安易に両者の干渉度を上げてしまうのも、駄目だと。
GUIビルダとソース自動修正機能との係わり合いの「深さ」が程良い、ってのが
Delphiの存在意義だと思っています。
あ。ご免。Kylixは殆ど触れてない俺なんで、Kylixがどれくらい悪い(遅いとか)のかは
見えてないんだけど、Delphi系についての一般論として。
C++ともJavaとも違う動的っぷりけど、かといってScript言語よりは静的だ、という微妙な位置付けっす>Delphi
Re:gladeってマイナー? (スコア:2, 参考になる)
GUI系開発をVBとかで始めた人は、Widgetのある所でマウスをぽちっとなとしてウィンドが開いてコード入力できるという所に価値を認めるだろうし、 素のソースから手で作ってきた人にはGUIだけビジュアルに作れれば良くて、裏で良しなにしてくれる部分は少ない方が良いという人もいるでしょう(みんながみんなそうだとは言いません)。 もう一度書いときますが、私は「Kylixは良くない」と言ってるのではありません。
開発スタイルというのは色々あるので、Kylixのような「統合開発環境」だけでなく、gladeなどのツールももうちょっと評価されても良いのではないか。 また、gladeはそもそもKylixのような統合開発環境ではないので、「Kylixに比べて○○の機能が無い」とかいうような不当な評価はやめてよ~。という事でちょっと書いてみました。
Re:gladeってマイナー? (スコア:1)
>ない方が良いという人もいるでしょう(みんながみんなそうだとは言いません)。
ヨシナといってもなあ…
見た目とコードの繋がる部分ってのは、APIセットだのなんだの単位でいえば、そんなに違わないですよね。
開発形態ではそうそう左右されないんじゃないかと。
で、GUI「に」コード「を」ぶらさげるというスタイルで作るほうが、
GUIアプリにおいては自然だ
と思うんだよなあ。
GUIを別途開発する、っていうノリって、ちょっとなんか「違う」ような気がする…んです。
>gladeはそもそもKylixのような統合開発環境ではないので
いや、「畑違いだから比較しないでくれ」という考え方のほうにこそ、疑問を感じちゃうんです俺。
そりゃあらゆるツールを上回る究極の1つのツールってのはたぶん(概念レベルですら)誕生し得ないとは思いますが、
一方で、あらゆるツールが「それぞれに存在意義がちゃんとある」とは言えない思います。
あれを使うくらいならこれを使うほうが「(ほぼ)全ての面について」マシだ、という事はしばしば有るはず。
#そのツールの上で動くエディタの操作感が伝統的vi風であって欲しいと思うかどうか、は別問題です(^^;
##delphi系のエディタをvi風にするアドオンを、作った人って居ないかなあ:-D~~~~
遂に出たか (スコア:2, 参考になる)
個人的な興味は、KDE との関係。
ご存じの通り(知らない?)、Kylix で使われてる CLX ライブラリは、Qt の上に構築されてます。ってことは、KDE みたく透過したりドロップシャドウされてたりするアプリが簡単に作れるようになるのかな?
Re:遂に出たか (スコア:1)
★☆。.:*:・"゜★βyёヾ(⌒∇⌒)ノβyё★。.:*:・"☆★
send from 礼恩
(*^ー^)ノ~~☆:.・*.マ.:タ.:ネ
window開発環境がどんどん増えてますね。 (スコア:1)
日本国からはWideStudio [widestudio.org]が出ています。(これは作者が一から作成)
Windows Linux 両方に対応した開発環境が増えてます。
実際これらを使い Unix 系の OS でどれだけ開発が行われているのでしょう?
# ”動かして見る”程度ではなく実用レベルで
Re:window開発環境がどんどん増えてますね。 (スコア:4, 参考になる)
一応業務で使用する為です。
自分のようなシロウトがGUIのプログラムをつくるにはこのような環境
がフリーであることがは非常にありがたいです。
最新版ではソケット,SQL,OpenGL等のクラスライブラリもあり作者には
失礼ですがオモチャではなく使えるレベルになっていると思います。
#Windowsで使うつもりはこれっぽちもありませんけどね。
田舎のLinux野郎
なんだ (スコア:1)
VCLをC++で使えるようにしたっていうんだったら、単純に
"C++ Builder for Linux"って銘打てばいいだけだと思うんだけどなぁ。
よーわかりません。
Re:なんだ (スコア:1, 参考になる)
もともと当初の計画では Kylix = Delphi + CB だったらしいです。
やっと出揃ったって感じですね。
Re:なんだ (スコア:2, おもしろおかしい)
-----------------
#そんなワタシはOS/2ユーザー:-)
Re:なんだ (スコア:2, 参考になる)
Re:なんだ (スコア:2, 参考になる)
また、ObjectPascalという呼称を持つ言語としては、Borland(Delphiなど)と無縁の全然別の言語も有るんで、
紛らわしくてちょっとイヤだったというのも有るし。
…などと思っているんですが、どうでしょうかね?
>1パッケージになって出てくるとは。
もともとWin版がPascalとC++で別箱になってるのがイヤだな
(俺がC++嫌いかどうかはさておき)と思っていたんで、
一体になるというならそれに越したことはないと思ってます。
#値段次第でしょうけど。
ただまあ、C++の真髄である静的な側面を活用しようとすればするほど、
Delphi(言語だけじゃなくObjectアーキテクチャ全般を指す名称として)の真髄である
適度に動的な側面を持たせたという面とは、やっぱり相性は悪くなるわけで、
「C++導入でKylix(Delphi系)の普及に弾みがつく」という発想はもともと個人的にはイヤだったりしますが。
クラス多態(virtual class method:こいつはJavaにも無いぞ)万歳。
Re:なんだ (スコア:0)
Re:なんだ (スコア:1)
俺の認識が間違ってなければ(ぉ)本当です。
一応、同じ事が「出来る」かといえばJavaでも出来ますね。
Classクラスを使えばいい。書くとすればこんな感じ [nifty.com]ですよね多分?
が、文法とかでネイティブにサポートしてるわけじゃないので、いちいち書くのはウザイっす。
最初からclass methodやconstructor をvirtualにすることがサポートされるDelphiのほうが、綺麗。
そもそも、あれだけ動的な機能が有る言語であるくせに、
Class aClass=java.lang.String;
とか(Class名(?)をそのまま式に使う)書けないってのが痛いぞ>Java
% javac A.java
A.java:3: java は未定義な変数、クラス、またはパッケージ名です。
Class aClass=java.lang.String;
コンパイルエラーっすね。 Delphiはこれに相当する文を書けます。
#いや、そりゃさ、直接書く替わりに文字列で名前を渡す Class.forName("java.lang.String") とも書けるけどさ、なんかイヤじゃない?
それに、Class型自体に型の継承の概念が有って、強い型付けな言語として弾くべき代入を弾いてくれます
(うまい日本語が無いなあ…)ので、場合によっては凄く便利。
type
THoge=class end;
THoge2=class(THoge) end;
THogeClass = class of THoge;
THoge2Class = class of THoge2;
var
aHoge :THogeClass =THoge2; //OK
aHoge2:THoge2Class=THoge; //継承関係が逆鞘になるのでコンパイルエラー
Re:なんだ (スコア:1)
> Class aClass=java.lang.String;
> とか(Class名(?)をそのまま式に使う)書けないってのが痛いぞ>Java
Class aClass=java.lang.String.getClass();
でOKという話ではない?
--- Melloques Les Covdrasey ---
Re:なんだ (スコア:1)
実は,override ではなく,reintroduce と同じでしよ。
試しに下位の class of 変数に対して,派生して多態したはずの クラスを代入して,その class of 変数のメソッドを呼んでみるでし。
宣言した class of の示すクラスメソッドしか呼ばれんでしよ。
おk?
★☆。.:*:・"゜★βyёヾ(⌒∇⌒)ノβyё★。.:*:・"☆★
send from 礼恩
(*^ー^)ノ~~☆:.・*.マ.:タ.:ネ
Re:なんだ (スコア:1)
>でOKという話ではない?
% cat A.java
public class A{
public A(){
Class aClass=java.lang.String.getClass();
}
}
% javac A.java
A.java:4: class java.lang.Object のメソッド java.lang.Class getClass() に static 参照することはできません。
Class aClass=java.lang.String.getClass();
getClass()はクラスメソッドではなくインスタンスメソッドっす。
(インスタンスが存在するとしてその)インスタンスのクラスは何だ?と
問い合わせるためのメソッドっす。
インスタンス(通常の)とは関係なく、クラス(JavaならばClassクラスのインスタンス(^^;)を得たいと思ったとき、
前述の書き方が出来ないってのが、ちょっとイヤだなと。
getClass()のクラスメソッド版が有ればいいんですが、
つーか標準クラスのソース(公開されてるんだったよね)をいじって自作すればいい(ぉ)んですが、
そもそもJavaでは肝心のクラスメソッド自体を「多態」できないために、
せっかくそうやって作った static Class Object#getClass2();(仮にこう作ったとする)
およびその子孫クラスのgetClass2()は
「どんなクラスに対しても」同じClassオブジェクトを返さざるを得ません(^^;;;;;
Class aClass=java.lang.String.getClass2();
Class bClass=java.io.File.getClass2();
のaClassとbClassが違う値になる余地が無い。
これでは使い物にならない。
で、それを克服するための逃げ道として用意されてるのが、(俺の見落としでなければ)
static Class#forName(String name)
しか無いらしいですが、ちょっと迂遠だなと。
言語仕様を(C++から見て(笑))変更しない(クラス多態を認めない)方向で頑張るよりも、
言語仕様を変更するほうが、スマートだったのではないか、と。
Re:なんだ (スコア:0)
ではだめなのでしょうか?
Re:なんだ (スコア:1)
うわ、本当だ。
ムリヤリgetClass()を使うなら、
Class aClass= (new java.lang.String()).getClass();
ってなる訳ですね。
意味ねぇ!!(笑)
> Class aClass=java.lang.String.getClass2();
> Class bClass=java.io.File.getClass2();
> のaClassとbClassが違う値になる余地が無い。
そうなんですか。
getClass2()が作れたとしたら、aClassとbClassが(Classクラスのサブクラスでない)違うクラスになれないだけで、aClassとbClassが違う値になることは許されているのかと思ってました。
(たしかに、Objectクラスを修正するだけでは無理っぽいのかな。どうでしょう・・・)
> 言語仕様を(C++から見て(笑))変更しない(クラス多態を認めない)方向で頑張るよりも、
> 言語仕様を変更するほうが、スマートだったのではないか、と。
Javaの仕様には「型(クラス)を強く束縛したい」という意思を感じますね。
「インターフェイスによる多態で我慢せよ!!」ということか・・・。
# そーゆー話じゃない!!<自己ツッコミ
--- Melloques Les Covdrasey ---
Re:なんだ (スコア:1)
--- Melloques Les Covdrasey ---
Re:なんだ (スコア:1)
うわ。通った。
すみません。こんな非合理的な(ぉ)文法が有るなんて知りませんでした。
非合理ってのは、この構文だと、classが予約語であって一般の識別子じゃないことを
(コンパイラも人も)知っていてはじめて意味が理解可能なので。つまり意味の介入が多すぎ。
Class aClass=java.lang.String class;
とかならまだしも「判る」んだけどな。そういう構文だということになるから。
ん。それはそれとして、
Class aClass=String.class;
とも書けるのはClass#forNameより少しマシっすね。
ただ、どっちにせよ、そのaClassを使ってクラス多態をやれるわけじゃないんで、旨みは少ないです。
上記コードの続きとしてStringクラスのStaticメソッドを呼ぶような書き方をしても、エラーになる、と。
一種類のClassクラスだけじゃなくて「Hogehogeクラスの」クラスクラスを書けるようになってくれたらなあ…
% cat A.java | grep 必要個所(ぉ
Class aClass=java.lang.String.class;
String answer=aClass.valueOf(true);
% javac A.java
A.java:5: シンボルを解釈処理できません。
シンボル: メソッド valueOf (boolean)
位置 : java.lang.Class の クラス
String answer=aClass.valueOf(true);
Re:なんだ (スコア:1)
なるほど。既定路線なわけですね。
Kylix4は (スコア:1)
AssemblerとBASICとPrologにも対応するんでしょうか? :-)
Re:Kylix4は (スコア:0)
Re:Kylix4は (スコア:1)
Fortran にも対応しないと本物のプログラマーが使えません。
Re:Kylix4は (スコア:1)
Re:Kylix4は (スコア:1)
Turbo BASICはハドソン製です。(別名Hu-BASIC)
X1 Turbo を買うとついてきました。:P
うじゃうじゃ
Re:Kylix4は (スコア:1)
Borlandではなかったかと。
WideStudio (スコア:0)
RADもいいもんですね。
問題は値段と性能だけど (スコア:0)
不安定だしWindowsのよりかなり重い。
あれでDelphiと同じ値段なのは納得いかないなあ。
Kylixはバージョンアップの間隔もはやいし、
今買うのは抵抗があるな。
俺は買わないよ (スコア:1)
買うとしたら仕事で必要になった時だけだろうな。(今の所そういう仕事はないが)
(´д`;)
Re:問題は値段と性能だけど (スコア:1)
米国Borlandだと値段の格差はちゃんとあるのに, なんで日本BorlandはDelphiと同じ値段なんでしょうね。 完成度まだまだなんだから,お試し価格にしなきゃ・・・でもEnt版はWin版と同じようにWebデバッガついていたりと,たしかにそれまでのLinux環境では考えられないIDEなんだよねー。dbExpressはもうちょっとしっかり設計しろという感じですが。BDEを越えてない・・・ぞと。DBエンジンのクライアントが無くても動くのが凄いところだったのに結局ClientDataSetか・・・よと。
★☆。.:*:・"゜★βyёヾ(⌒∇⌒)ノβyё★。.:*:・"☆★
send from 礼恩
(*^ー^)ノ~~☆:.・*.マ.:タ.:ネ
8/14以降に (スコア:0)
と、云うことはダウンロードもそれ以降になるでしょう。
#borland.comのリリース文にslashdot.orgの文字があったのは秘密
オリジナルのC++コンパイラを乗せるみたいですが…
BCBにあるtempleteのbugなおんないかなぁ(汗)
Re:8/14以降に (スコア:2, 参考になる)
で、両者に関してはC++に慣れていても結局Delphiの方がVCLを何かと使いやすかった記憶があります。確かに文法の違いとかはあれですが、私は元々Pascal出来たので・・・
Re:8/14以降に (スコア:0)
確かにDelphiの方がしっくり来て使いやすいと思いました。まあ、インターフェイスがDelphiだから当然なのかも。
Pascal使
めでたし めでたし (スコア:0)
あれ? (スコア:1)
ヘッダみたいなの書けば使えたんじゃないか?
(使い込んでないからよくわからんが)
(´д`;)