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

■ このスレッドは過去ログ倉庫に格納されています
2014/06/04(水) 00:32:30.04ID:F6AvD4LE
静的言語のデメリットが解決された
Swfit登場で動的言語はオワコンか?
2014/06/04(水) 00:40:14.08ID:qVJRsv3N
全自動2ゲッター参上。
2014/06/04(水) 00:56:34.63ID:KWyGL2f/
代表はC#かC++で
2014/06/04(水) 01:01:48.55ID:dR3HZjet
やっぱり型がある方が便利だよね。
バグ少なくなるし。修正も楽になるし。
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
ウルトラセブン
2014/06/04(水) 05:21:03.50ID:xm3VPSs1
TypedClojure最強
2014/06/04(水) 05:53:12.01ID:2gJZ3DAh
最強は型推論付きの関数型言語で決着がついたのに、またやるのか。
2014/06/04(水) 07:19:40.25ID:cWUULp7C
変数に型がない言語って
やっぱりダメだよ。
簡単なバグでさえ見逃してしまう

どうせコードは特定の型(と互換性がある型)
前程になってるんだから、その型を書けばいい。
2014/06/04(水) 12:15:18.80ID:QBS2GcPO
しっかりとロジックを組んでいれば、型がなくても問題ないけど
型があった方がコンパイラさんに駄目だしされて気づき易いから楽ってだけだな
まぁもっと丁寧にプログラミングする事をこそ重視した方がいいと思うけどね
2014/06/04(水) 13:01:26.30ID:GG5AMWSc
スペルミスが素通しになるのを防いでくれれば後はそれほどでもない
2014/06/04(水) 13:09:31.90ID:H9m/5fkb
丁寧にプログラミング?
そりゃRuby厨は丁寧にプログラミングせざるをえんわな。安全ネットが無いんだから。

俺はHaskellで書くときはぶっきらぼうに書いてるぜ。-Wall でたいていの抜けはチェックできるし。
2014/06/04(水) 14:55:00.72ID:Q5ELIKYC
静的型の方がAPIリファレンスが読みやすい
2014/06/04(水) 16:48:38.79ID:OMtzL7Lr
動的言語のリファレンスでも型は書かれてるっていう
Doc生成とかIDEのためにも型は必須
2014/06/04(水) 17:20:04.59ID:T4v3WcMA
Javascriptが跳梁跋扈しててもTypeScriptやHaxeみたいなAltJSがあるから、まあ、といったところだが、
今度はランタイムにまともな型システムがないのが気になってくる。
JavaのTypeErasureですら、何だこのレガシーVMはと思ったが…。
2014/06/04(水) 17:59:07.48ID:KWyGL2f/
お前ら飽きないな
静的型付け言語の潜在開発生産性は今の100倍 ×5
http://peace.2ch.net/test/read.cgi/tech/1385273168/
2014/06/06(金) 08:17:42.14ID:Xr84RnA8
タイポくらい簡単に見つかるよPythonは
2014/06/08(日) 20:29:27.03ID:muM/tUAt
Haxeの文法は出来が良いよ
2014/06/09(月) 17:59:59.45ID:hLL8713Q
静的型の逆襲が来てるっつーか
ぶっちゃけ動的型が一時の気の迷いだったのは確定的に明らかだと思うんですけど。

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

大体、メモリにビット列がどうストアされるかという
ある意味コンピュータの根本的な部分をgdgdにしてどうするんだよ。
マシン語が透けて見えるやつなら、動的型言語がCPUのニモニックレベルでどれほど不自然なことをやっているか、
オーバーヘッドがいかに大きいかは解るはずだ。
2014/06/09(月) 22:42:16.21ID:0wp3BeLp
釣り針が大きすぎるだろ
2014/06/09(月) 23:26:45.91ID:9PbNMvAP
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

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

                  京都大学霊長類研究所
23デフォルトの名無しさん
垢版 |
2014/06/10(火) 00:07:01.34ID:2MebFii0
CPUの歓声が聞こえるスレはここですか
2014/06/10(火) 01:56:03.90ID:R+j21wgE
(SwiftはそもそもObjective-Cの後継として設計されていて
Objective-Cは動的にクラスを扱う言語だったから
当然それができなきゃ後継たり得ないのでclassは動的に管理され
それとは別にstructの中で関数やメソッド宣言することで
静的言語のクラスのようなことができるという
スレタイのような対立をぶち壊してる言語でして…)
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
型推論とジェネリクスがあるなら静的型言語のほうがいいな。
2014/06/10(火) 02:39:10.62ID:osqTzX66
>>24-25
スレタイの静的は、
変数や関数の引数戻値に型がある静的型付言語のことを言ってるんじゃないの?
2014/06/10(火) 06:17:18.98ID:wv+hvGP5
静的と動的が合体したみたいな言語ってありませんか(´・ω・`)?
2014/06/10(火) 07:06:23.59ID:p8HHtVx/
>>28 それがSwiftでは?
2014/06/10(火) 10:27:23.11ID:Asjcm40b
天麩羅Haskellとか、依存型(dependent type)だな。
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
2014/06/14(土) 09:07:17.65ID:gvIqw1Hb
Swiftの制作者 Chris Lattner は、WWDC14のキーノートでSwiftの説明をしたその人なのですが、
実は、今ではXcodeの標準コンパイラ基盤となっているLLVMを設計した人なのです!
2014/06/14(土) 09:55:04.44ID:NSBhpKcG
LLVM凄いね。Linuxだけのものだと思っていたら、
XCodeも採用しちゃった。Appleにも認められたLLVMは凄い。

LLVMがなければAppleは今でもObjective-Cを使っていただろう。
というか今までObjective-Cしかなかったとかありえないな。
2014/06/14(土) 10:18:14.30ID:gvIqw1Hb
>>33
LLVMのmain authorは、Appleの社員だが。
2014/06/14(土) 10:41:46.94ID:NSBhpKcG
アップルが関係しだしたのは、LLVMの開発が始まったかかなり後のことです。
一人か数人かしらないけど、後から参加したくせに
LLVMはアップルが起源みたいなことを言わないようにw
2014/06/14(土) 10:56:28.77ID:gvIqw1Hb
すまんかった。現在の、ね。
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.
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ブラウザ併用推奨
2014/06/27(金) 00:28:28.91ID:8upcRNms
そういやLLVMスレが立った頃はclangなんて存在しなかったな。
LLVM-GCCしかなかった。
2014/07/24(木) 22:46:38.40ID:3xYKvkhO
ClangはそもそもObjective-Cコンパイラを現代的に書き直す為に、一からAppleが開発した物。
CやC++も入ってるのはObjective-Cと混在可能だから。

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

これが意味する物は、Swiftは、C、C++、ObjCの全資産を利用可能だと言うこと。
2014/08/05(火) 11:23:59.81ID:YIevQOQe
全資産を利用可能と聞くと一見よさげだが
悪しき遺産に足を引っ張られて結局使いづらい中途半端なものに終わるってことじゃね

ブリッジ部分を工夫して上手く切り離せてればいいんだが
2014/08/05(火) 16:00:38.20ID:e8X0jHpI
>>42 ブリッジなんて何も感じさせないんだけど。
ObjCとかCのライブラリを使うからと言ってヘッダファイルが必要になるわけでもないし。
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
2016/02/04(木) 12:43:56.64ID:M5WeNgYc
>>44
SwiftってCのAPI生で触れるんだよな。
一時期かなり凄いと思ったが、作りむようになるとSwiftの記法が面倒になるんだよな。
結局ロジックはCで書いて、Swiftからはラッパー関数呼び出すだけになったわ。
2016/02/04(木) 17:21:15.79ID:ob+62gtm
正解
2017/06/09(金) 13:08:21.92ID:Be6u/Qjm
内部のテンポラリ変数なんかは型は別になくてもそんな困らんのだけど
関数の引数宣言なんかは型があった方が読みやすいわな。
49デフォルトの名無しさん
垢版 |
2018/05/23(水) 22:16:04.28ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

2T9SK
50デフォルトの名無しさん
垢版 |
2018/07/04(水) 23:48:09.96ID:gFgZc5FG
DOZ
2019/02/08(金) 13:05:10.84ID:ZGG3UIKF
>>24 iPhone用のPython  pythonista はその Objective_Cの関数が使えるから同じこともできる。

>>48 Python も関数のパラメータには型宣言が入れられる。 ただ自動的にチェックはしてくれない。

#型宣言無しの書き方
def func0( arg1 , arg2=1 ) :
 return arg1*arg2
#型宣言有りの書き方
def func( arg1 : str , arg2 : int = 1 ) -> str:
 return arg1*arg2 if type(arg1) == str else "バカ"

print(func('Test'))
print(func('Test',3))
print(func(10,3))
print(func0(10,3))

結果-----
Test
TestTestTest
バカ
30
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況