« ◆聴覚における音の方位の重要性(につながる雑談) | トップページ | ◆一斉muteコマンダーが欲しい »

Swift入門?う~ん。。

 構文解析技術を持たない連中がでっちあげたゴミ言語

次のコードを見てください。

var a:Int=1
var b:Int= 2   // Postfix '=' is reserved
var c:Int =3   // Prefix '=' is reserved
var d:Int = 4 
このコードでbとcがコンパイルエラーになることを納得しますか?
b,cはエラーになります。エラー内容を後ろにコメントで付けました。
とても高級言語とは思えません。 低機能のシェルと同程度かあるいは以下です。

次のコードはどうでしょう?

var e:Int=-1  //Consecutive declarations on a line must be separated by ';'
var f:Int= -2 //Postfix '=' is reserved
var g:Int =-3 //Consecutive declarations on a line must be separated by ';'
var h:Int = -4
なんとh以外はエラーになります。
しかもエラーメッセージのなんと的外れなことでしょう!

次のコードも多くの行がエラーになります。

   if a==1  {print("a==1")  }
   if a== 1 {print("a== 1") }//Braced block of statements is anused closure
   if a ==1 {print("a ==1") }//Braced block of statements is anused closure
   if a == 1{print("a == 1")}
   if a!=1  {print("a!=1")  }//Cannot force unwarp of non-optional type 'Int'
   if a!= 1 {print("a!= 1") }//Postfix '=' is reserved
   if a !=1 {print("a !=1") }//Excepted '{' after 'if' condition
   if a != 1{print("a != 1")}

演算子は基本的に前後に空白を置く必要があるのです。貧相なシェル記述と同じです。
それにしてもエラーメッセージのトンチンカンなこと。

 まあ、コンパイルエラーとなるものは許すとしましょう。が!

なんと!空白の有り無しで動作が変わることがあるのです。

   let val1:Int = test3()
                +test4()  // 足し算されない
   let val2:Int = test3()
                + test4() // 足し算される
   print("val1="+String(val1)+" val2="+String(val2));
   // val1=3 val2=7
これはさすがにダメでしょう。
「文の終わりを';'で示す必要がない」などという大して意味のないことのためにプログラムをとんでもない危険にさらしているのです。
この1件だけでswiftを完全拒否する十分な理由となります。

 Swiftのオープンソース化

結局構文解析技術を持たない連中が色々やってみたけど無理だったということでしょう。

なので世の中の構文解析技術を持っているであろう人々の手にゆだねる。 自分たちの能力の欠如を認識した賢明な判断ではあります。

オープンソース化によって まともな言語になることを期待はしますが、動きをみるとfor(初期化;判断;変更)文を無くそうとか余り良い方向に向かっていないような。。。

 せめてExceptionくらい欲しい

swift3にはまだException機構はありません。
あるのはあくまでエラー通知機構であって、通常のreturnとは別途、エラー時にenumを戻すことができるというだけです。
あくまで想定内の戻し値であって、例外対応ではありません。
nilアクセスなどの例外事象をキャッチすることはできないのです。
javascript以下です。貧しい言語だ。

行の終わりを見て文の終わりを判断するなどというバカはやめてシンプルにセミコロン;にして欲しい。

暗黙の型変換を用意してほしい。Float->CGFloatなど。

(初期化;判断;再設定)型のfor文を復活して欲しい。

++,--を復活して欲しい。

|

« ◆聴覚における音の方位の重要性(につながる雑談) | トップページ | ◆一斉muteコマンダーが欲しい »

トラックバック


この記事へのトラックバック一覧です: Swift入門?う~ん。。:

« ◆聴覚における音の方位の重要性(につながる雑談) | トップページ | ◆一斉muteコマンダーが欲しい »