帰ってきた動的言語 VS 静的言語(代表Swift)

1デフォルトの名無しさん2014/06/04(水) 00:32:30.04ID:F6AvD4LE
静的言語のデメリットが解決された
Swfit登場で動的言語はオワコンか?

2片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0 2014/06/04(水) 00:40:14.08ID:qVJRsv3N
全自動2ゲッター参上。

3デフォルトの名無しさん2014/06/04(水) 00:56:34.63ID:KWyGL2f/
代表はC#かC++で

4デフォルトの名無しさん2014/06/04(水) 01:01:48.55ID:dR3HZjet
やっぱり型がある方が便利だよね。
バグ少なくなるし。修正も楽になるし。

5デフォルトの名無しさん2014/06/04(水) 01:49:23.44ID:OMtzL7Lr
理由もなくフルボッコにされたpythonの心中お察しいたします

6デフォルトの名無しさん2014/06/04(水) 02:42:50.60ID:2rj+WfiI
やっぱLISPが最強かー

7デフォルトの名無しさん2014/06/04(水) 03:54:59.29ID:kTXVUqyW
ウルトラセブン

8デフォルトの名無しさん2014/06/04(水) 05:21:03.50ID:xm3VPSs1
TypedClojure最強

9デフォルトの名無しさん2014/06/04(水) 05:53:12.01ID:2gJZ3DAh
最強は型推論付きの関数型言語で決着がついたのに、またやるのか。

10デフォルトの名無しさん2014/06/04(水) 07:19:40.25ID:cWUULp7C
変数に型がない言語って
やっぱりダメだよ。
簡単なバグでさえ見逃してしまう

どうせコードは特定の型(と互換性がある型)
前程になってるんだから、その型を書けばいい。

11デフォルトの名無しさん2014/06/04(水) 12:15:18.80ID:QBS2GcPO
しっかりとロジックを組んでいれば、型がなくても問題ないけど
型があった方がコンパイラさんに駄目だしされて気づき易いから楽ってだけだな
まぁもっと丁寧にプログラミングする事をこそ重視した方がいいと思うけどね

12デフォルトの名無しさん2014/06/04(水) 13:01:26.30ID:GG5AMWSc
スペルミスが素通しになるのを防いでくれれば後はそれほどでもない

13デフォルトの名無しさん2014/06/04(水) 13:09:31.90ID:H9m/5fkb
丁寧にプログラミング?
そりゃRuby厨は丁寧にプログラミングせざるをえんわな。安全ネットが無いんだから。

俺はHaskellで書くときはぶっきらぼうに書いてるぜ。-Wall でたいていの抜けはチェックできるし。

14デフォルトの名無しさん2014/06/04(水) 14:55:00.72ID:Q5ELIKYC
静的型の方がAPIリファレンスが読みやすい

15デフォルトの名無しさん2014/06/04(水) 16:48:38.79ID:OMtzL7Lr
動的言語のリファレンスでも型は書かれてるっていう
Doc生成とかIDEのためにも型は必須

16デフォルトの名無しさん2014/06/04(水) 17:20:04.59ID:T4v3WcMA
Javascriptが跳梁跋扈しててもTypeScriptやHaxeみたいなAltJSがあるから、まあ、といったところだが、
今度はランタイムにまともな型システムがないのが気になってくる。
JavaのTypeErasureですら、何だこのレガシーVMはと思ったが…。

17デフォルトの名無しさん2014/06/04(水) 17:59:07.48ID:KWyGL2f/
お前ら飽きないな
静的型付け言語の潜在開発生産性は今の100倍 ×5
http://peace.2ch.net/test/read.cgi/tech/1385273168/

18デフォルトの名無しさん2014/06/06(金) 08:17:42.14ID:Xr84RnA8
タイポくらい簡単に見つかるよPythonは

19デフォルトの名無しさん2014/06/08(日) 20:29:27.03ID:muM/tUAt
Haxeの文法は出来が良いよ

20デフォルトの名無しさん2014/06/09(月) 17:59:59.45ID:hLL8713Q
静的型の逆襲が来てるっつーか
ぶっちゃけ動的型が一時の気の迷いだったのは確定的に明らかだと思うんですけど。

トレードオフの問題ではあるが、
コンパイルせず手軽に実行できる=事前チェックや最適化を何もしないスクリプト言語の作法を
メインストリームと勘違いした連中があまりにも多かった。
コードや開発者が増えるに従って、lintしたりjsdocのようなノーテーション入れたりTDDしたりするようになったら
お前もうそれコンパイルしろよ、そもそももっと安全な言語を使えよとなるわな。迂遠すぎるわ。

大体、メモリにビット列がどうストアされるかという
ある意味コンピュータの根本的な部分をgdgdにしてどうするんだよ。
マシン語が透けて見えるやつなら、動的型言語がCPUのニモニックレベルでどれほど不自然なことをやっているか、
オーバーヘッドがいかに大きいかは解るはずだ。

21デフォルトの名無しさん2014/06/09(月) 22:42:16.21ID:0wp3BeLp
釣り針が大きすぎるだろ

22デフォルトの名無しさん2014/06/09(月) 23:26:45.91ID:9PbNMvAP
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所

23デフォルトの名無しさん2014/06/10(火) 00:07:01.34ID:2MebFii0
CPUの歓声が聞こえるスレはここですか

24デフォルトの名無しさん2014/06/10(火) 01:56:03.90ID:R+j21wgE
(SwiftはそもそもObjective-Cの後継として設計されていて
Objective-Cは動的にクラスを扱う言語だったから
当然それができなきゃ後継たり得ないのでclassは動的に管理され
それとは別にstructの中で関数やメソッド宣言することで
静的言語のクラスのようなことができるという
スレタイのような対立をぶち壊してる言語でして…)

25デフォルトの名無しさん2014/06/10(火) 01:59:10.01ID:p8HHtVx/
774 名前:デフォルトの名無しさん [sage] :2014/06/10(火) 00:52:23.29 ID:sFxDcnZ9
クラス(orメソッド)宣言に@objcを付ける(もしくはObjCのクラスを継承する)と
メソッド呼び出しはobjc_msgSendを使ったものになる
クラス宣言に@objcを付けなければ、ObjCと非互換になる代わりに
メソッド呼び出しはC++のvirtual相当(直接関数ポインタを取得してcall)になる
クラス宣言に@objcを付けず、かつメソッド宣言に@finalを付けると
メソッド呼び出しは完全に静的になる

よって、Swiftは完全な動的束縛、静的に型付けされた動的束縛、静的束縛の3つの形態で使えるようだ。

26デフォルトの名無しさん2014/06/10(火) 02:28:13.77ID:qoouvLaS
型推論とジェネリクスがあるなら静的型言語のほうがいいな。

27デフォルトの名無しさん2014/06/10(火) 02:39:10.62ID:osqTzX66
>>24-25
スレタイの静的は、
変数や関数の引数戻値に型がある静的型付言語のことを言ってるんじゃないの?

28デフォルトの名無しさん2014/06/10(火) 06:17:18.98ID:wv+hvGP5
静的と動的が合体したみたいな言語ってありませんか(´・ω・`)?

29デフォルトの名無しさん2014/06/10(火) 07:06:23.59ID:p8HHtVx/
>>28 それがSwiftでは?

30デフォルトの名無しさん2014/06/10(火) 10:27:23.11ID:Asjcm40b
天麩羅Haskellとか、依存型(dependent type)だな。

31デフォルトの名無しさん2014/06/10(火) 16:42:07.04ID:p8HHtVx/
>>27 Swift のジェネリックを見ると、基本は動的型付で制約/束縛指定をすると型の種類に制限をかけて行くみたいだから、色んな形での使用が可能みたい。
Swiftのライブラリの多くは、ジェネリックで作ってるらしい。 配列や辞書なども。

http://ja.wikipedia.org/w/index.php?title=Swift_%28プログラミング言語%29#.E3.82.B8.E3.82.A7.E3.83.8D.E3.83.AA.E3.83.83.E3.82.AF

32デフォルトの名無しさん2014/06/14(土) 09:07:17.65ID:gvIqw1Hb
Swiftの制作者 Chris Lattner は、WWDC14のキーノートでSwiftの説明をしたその人なのですが、
実は、今ではXcodeの標準コンパイラ基盤となっているLLVMを設計した人なのです!

33デフォルトの名無しさん2014/06/14(土) 09:55:04.44ID:NSBhpKcG
LLVM凄いね。Linuxだけのものだと思っていたら、
XCodeも採用しちゃった。Appleにも認められたLLVMは凄い。

LLVMがなければAppleは今でもObjective-Cを使っていただろう。
というか今までObjective-Cしかなかったとかありえないな。

34デフォルトの名無しさん2014/06/14(土) 10:18:14.30ID:gvIqw1Hb
>>33
LLVMのmain authorは、Appleの社員だが。

35デフォルトの名無しさん2014/06/14(土) 10:41:46.94ID:NSBhpKcG
アップルが関係しだしたのは、LLVMの開発が始まったかかなり後のことです。
一人か数人かしらないけど、後から参加したくせに
LLVMはアップルが起源みたいなことを言わないようにw

36デフォルトの名無しさん2014/06/14(土) 10:56:28.77ID:gvIqw1Hb
すまんかった。現在の、ね。

37デフォルトの名無しさん2014/06/14(土) 11:04:24.81ID:gvIqw1Hb
ちゅうか、
イリノイ大学でLLVM作ってたのがVikram AdveとChris Lattnerで、
2005年にChris LattnerがAppleに入社して今に至る、と。

The LLVM project started in 2000 at the University of Illinois at Urbana–Champaign,
under the direction of Vikram Adve and Chris Lattner.

38デフォルトの名無しさん2014/06/15(日) 17:06:54.63ID:F7O8xQBW
>>33
VBとかな

39デフォルトの名無しさん2014/06/26(木) 09:40:37.27ID:5mhML8Na
◎2chスレッド勢いランキングサイトリスト◎

★+ニュース板
・ 2NN (推奨サイト)
・ 2chTimes
★+ニュース板新着
・ 2NN新着
・ Headline BBY
・ unker Headline
★+ニュース板その他
・ Desktop2ch
・ 記者別一覧
★全板
・ 全板縦断勢いランキング (推奨サイト)
・ スレッドランキング総合ランキング
・ ログ速
★全板実況込み
・ 2勢 (推奨サイト)
・ READ2CH
・ i-ikioi

※ 要タイトル検索
※ 2chブラウザ併用推奨

40デフォルトの名無しさん2014/06/27(金) 00:28:28.91ID:8upcRNms
そういやLLVMスレが立った頃はclangなんて存在しなかったな。
LLVM-GCCしかなかった。

41デフォルトの名無しさん2014/07/24(木) 22:46:38.40ID:3xYKvkhO
ClangはそもそもObjective-Cコンパイラを現代的に書き直す為に、一からAppleが開発した物。
CやC++も入ってるのはObjective-Cと混在可能だから。

Swiftもソースレベルで混在可能だからClangに組み込まれた。 一般解放は未定だが多分オープンソースになる。

これが意味する物は、Swiftは、C、C++、ObjCの全資産を利用可能だと言うこと。

42デフォルトの名無しさん2014/08/05(火) 11:23:59.81ID:YIevQOQe
全資産を利用可能と聞くと一見よさげだが
悪しき遺産に足を引っ張られて結局使いづらい中途半端なものに終わるってことじゃね

ブリッジ部分を工夫して上手く切り離せてればいいんだが

43デフォルトの名無しさん2014/08/05(火) 16:00:38.20ID:e8X0jHpI
>>42 ブリッジなんて何も感じさせないんだけど。
ObjCとかCのライブラリを使うからと言ってヘッダファイルが必要になるわけでもないし。

44デフォルトの名無しさん2014/09/02(火) 10:55:15.80ID:gs4puFO8
>>42 SwiftからLibcを使った例

puts("Hello from libc")
let fd = open("/tmp/scratch.txt", O_WRONLY|O_CREAT, 0o666)

if fd < 0 {
perror("could not open /tmp/scratch.txt")
} else {
let text = "Hello World"
write(fd, text, strlen(text))
close(fd)
}

SwiftからObjective-C の UIColorを使う例

let myTextField = UITextField(frame: CGRect(x: 0.0, y: 0.0, width: 200.0, height: 40.0))

let color = UIColor(red: 0.5, green: 0.0, blue: 0.5, alpha: 1.0)
myTextField.textColor = UIColor.darkGrayColor()
myTextField.text = "Hello world"

45デフォルトの名無しさん2016/01/27(水) 10:31:59.77ID:9T6d+yCe
hoshu

46デフォルトの名無しさん2016/02/04(木) 12:43:56.64ID:M5WeNgYc
>>44
SwiftってCのAPI生で触れるんだよな。
一時期かなり凄いと思ったが、作りむようになるとSwiftの記法が面倒になるんだよな。
結局ロジックはCで書いて、Swiftからはラッパー関数呼び出すだけになったわ。

47デフォルトの名無しさん2016/02/04(木) 17:21:15.79ID:ob+62gtm
正解

新着レスの表示
レスを投稿する