はてなキーワード: JScriptとは
01. ハンドルネームは?
03. xyzzyについて何かwebサイトを持っていますか?
持っていません
0.2.2.253
15年くらい
昔のことすぎて忘れましたが、学校の UNIX 演習で Emacs を使っていたので、Windows でも使おうと思っていて見つけたんだと思います
07. xyzzy 以外に使っているテキストエディタはありますか?
Atom, McEditor
08. xyzzy を使う前に Emacs 系のテキストエディタを使ったことはありますか?
プログラムを書いたり設定ファイルをいじったり、テキストに関することならだいたい
10. xyzzy が関連付けされているファイルタイプは何ですか?
txt, md, log, ini, bat, html, xml, css, less, scss, sass, styl, js, coffee, pl, php, py, rb, java, sql ほかにもあるかも
11. xyzzy を他人に勧めたことはありますか? また、結果はどうでしたか?
使い始めた当時同級生が何人か使っていました
12. xyzzy がフリーじゃなかったとしたらいくら位の値段になると思いますか?
今なら3000円くらいなら買う
じじー
14. xyzzy の好きな点・嫌いな点はどこですか?
嫌いな点:動作をカスタマイズするときに不自由なところがある点
15. パソコンを立ち上げている時間の内、xyzzy をどのくらい使っていますか?
16. キーバインドは Windows風ですか? Emacs風ですか? オリジナルですか?
17. .xyzzyに書く派ですか? .siteinitに書く派ですか?
必要に応じてそれぞれに
してます
実際にさわりながら。Lisp は Google 先生さまさま
22. xyzzy を使うにあたって一番苦労したことは何ですか?
xyzzy 自体の Lisp API がマニュアル化されていないところ
23. xyzzy を使って目からウロコだった機能は何ですか?
Buffer Menu
24. 今の xyzzy に望むことはありますか? またそれは何ですか?
矩形機能に影響が出そうだけどプロポーショナルフォントへの対応と、絵文字など最近 Unicode に追加された文字への対応
26. Lisp のほかに読み書きできるプログラム言語はありますか?
JavaScript, ES 2016, Coffee Script, Action Script 3, C, C++のごく一部, Objective-C, Rust, Swift, Perl, PHP, Python, Ruby, bash, xyzzy lisp
28. 拡張Lisp で導入しているものは何ですか? (多い方は代表的なものをお答えください)
clickable-uri, jscript-mode, markdown-mode など
29. これは外せない! という 拡張Lisp はありますか? またそれは何ですか?
30. NetInstaller を利用していますか?
31. 拡張DLL を導入していますか? またそれは何ですか?
popup-dododo のための Cairo とか?
32. ドキュメント(info,reference等) は使っていますか? また、それは何ですか?
使っていません。自分で改造してキーワードを全部 Web で検索するようにしています
33. ネット関係の 拡張Lisp(www-mode,kamail等)を使っていますか?
xyttr
34. アウトライン系のLispは使っていますか? またそれは何ですか?
使っていません
35. メモ系(changelog-memo,howm等)Lispは使っていますか? またそれは何ですか?
使っていません
36. xyzzy の五目並べはやったことがありますか? また、結果はどうでしたか?
たまに。テキストの整形処理なら正規表現でゴリゴリやるほうが多いです
使っていません。国語、英和・和英、英英辞典は iPhone のアプリを使います
毎日の仕事に欠かせません。便利にカスタマイズしすぎてむしろファイラだけのために新しく xyzzy 自体を起動することもあります
あまり使いません。新しく(Windows における)ウィンドウ
使っていません
42. メーリングリストには参加していますか? また、メールを送信したことはありますか?
ありません
43. 2ch の xyzzy 関連スレッドに書き込みをしたことはありますか? また、その頻度はどのらいですか?
大昔にどうしてもわからないことがあって書き込んだ記憶があります
44. xyzzywikiに書き込みをしたことはありますか? また、その頻度はどのくらいですか?
たまにほしくなるので表示しています
隠しています
47. xyzzy のファンクションバーは表示していますか?
表示していません
表示していません
49. 色、フォントなどは変更していますか? またそれは何ですか?
色は暗い背景色、ハイライトカラーはできるだけ色相を離したパステルカラーです。
フォントは Consolas に源新ゴシック Regular を組み合わせています。
まだまだ xyzzy は不滅です
と、律儀にマジレスしてみる。
プログラミング言語の範囲で「ある程度他に考え方の転用が効く」という意味なら、
最低でも、OS操作できるスクリプト言語(bash系やWSH+VBScript/JScript, PowerShell等)と、
汎用スクリプト言語(RubyやPython等)もやっておいた方が良いかと。
お仕事で、という話なら言語よりはライブラリの使い方やアーキテクチャへの理解、プロジェクトのルールを守れるようになる、といった事の方が重要になってくるし、
理由くらい書けよ糞が
他のWindowsプログラムがやっていて、多くの方が「できて当然」だと思っていることは、7割くらいであれば.NET(フレームワーク名)を叩けばできます。
.NET対応言語はC#、VB.NET、J#、F#、JScript.NET、C++/CLIなどがあり、実際の開発においてはこれらの中から自分に合った言語を選ぶことになります。
個人的な感想ですが、この中で最もゆとり仕様なのはC#です。StackOverflowなどのノウハウが一番蓄積されているのもC#だと思います。
「頻繁なアップデートを追跡しないといけない」「Visual Studioが必要」という問題はありますが、がんばってください
なお、.NETはメモリを食うので、数値計算みたいなことをしたいのであればC++が現状一番まともだと思います。がんばってください
昔のMacのプログラムのGUIはCarbonというライブラリで作っていました。今はCocoaというライブラリで作っています。
残念なことに、どちらも言語はObjective-Cです。がんばってください
ブラウザアプリは、ユーザのWebブラウザ(Chrome、Firefox、Opera、Safariなど)上で動作するシステムと、遠隔のサーバ上で動作するシステムが連携して成立します。
従って、ブラウザアプリを作る言語は、サーバ用言語とクライアント用言語の2種類を考えなければなりません。めんどくさいですね。
ひとたびそのめんどくささを突破してしまえば、Webブラウザさえあればどこでも動くようになります。素晴らしいですね。
クライアント用の言語は、まぁ、JavaScriptしかないと思います。がんばってください
JavaScriptも(正直なところ)あまり褒められた言語ではないので、近頃ではもうちょっとまともな言語を作って、それをJavaScriptに変換する方法が取られたりします。CoffeeScript、TypeScript、Haxeとかですかね。がんばってください
JScriptとかいう、名前が紛らわしい上にゴミブラウザ上でしか動かないゴミ未満言語もありますけど、そんなもんで作っても私の環境では動かせませんので悪く思わないでください。
そもそも選択肢が全くありませんので仕方がないです。がんばってください
Xamarinがあるじゃないかって?まぁそういうのもあるかもしれませんね。がんばってください
私の勉強不足で、Java以外の選択肢は知らないです。Java以外にあるんですかね?
Perlは使い捨てスクリプトを作るのに適しています。CPANクライアントは昔から安定して動きません。だいぶオワコン化してます。がんばってください 私は鞍替えしました
PythonはPerlより見た目がすっきりしたPerlです。easy_install・pipはすごく安定していてびっくりします(Windows除く)。3系とかいう邪念は捨てて2系教の悟りを開きましょう。がんばってください
RubyはPerl(の処理系のソースコード)より(処理系のソースコードが)綺麗なPerlです。私の手元のUbuntuで「ruby」と入力すると「Command not found.」と返ってくることからも解るとおり、多くの*NIXではOS標準でインストールされておりません。昔のgemは何故あんなにすごい時間をかけてrdocを作っていたのでしょうか。日本人が作ったのでムラ意識の強い日本人の仲間が大勢います。他の国は知りません。がんばってください
これ以上言語を増やすのはやめましょう。バベルの塔で大勢の人間が不幸になったのに、それを人間が自ら引き起こしてどうするんですか。
言語処理系を作るのであれば、BNFという言語で文法を定義して、yacc・bisonというツールに食わせればひな形ができます。ぶら下がりelseとの格闘が待ってますが、がんばってください
1からOSを作った方もいますが、デバイスドライバの流用などを考えると、だいたいはLinuxやBSDのソースコードを改変するお仕事だと思います。
昔はCGIと言っていました。所詮は80番ポートでlistenするだけのプログラムであり、BSDソケットをlistenできるライブラリを有する言語であれば何でもいいのですが、いくつかの宗教があります。
PHPはバンドネオンと同じくらい習得が困難な言語なのに、宣伝の仕方を間違えたために「自分はできる」と勘違いしたプログラマが暴徒と化し、イスラム教と同じくらい不当に低く評価されている言語です。きちんと勉強して使う分には、悪くない選択肢だと思います。がんばってください
Javaは、Eclipse・Netbeansといった超重量級IDEを起動して、Java EEやSpringといった超重量級ライブラリに依存したwarを、Jboss・WebSphereなどの超重量級アプリケーションサーバ上で動作させるため、メモリが貧弱な環境ではIDEとサーバを同時に起動すらできません。サーバのメモリが潤沢であれば悪くない選択肢だと思います。がんばってください
C#は、選択肢が全くないことを除けば、状況はJavaとあまり変わりません。Microsoftがお好きな方、何かの間違いでWindowsサーバを使わざるを得ない方であれば、悪くない選択肢だと思います。がんばってください
Option Explicit Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0 Private Const INTERNET_OPEN_TYPE_DIRECT = 1 Private Const INTERNET_OPEN_TYPE_PROXY = 3 Private Const INTERNET_SERVICE_HTTP = 3 Private Const INTERNET_DEFAULT_HTTP_PORT = 80 Private Const INTERNET_FLAG_RELOAD = &amp;H80000000 Private Declare Function InternetOpenA Lib "wininet.dll" (ByVal sCallerName As String, ByVal dwAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal dwFlags As Long) As Long Private Declare Function InternetConnectA Lib "wininet.dll" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nProxyPort As Integer, ByVal sUserName As String, ByVal sPassword As String, ByVal dwService As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long Private Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByRef sBuffer As Byte, ByVal lNumberBytesToRead As Long, ByRef lNumberOfBytesRead As Long) As Long Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInternetHandle As Long) As Long Private Declare Function HttpOpenRequestA Lib "wininet.dll" (ByVal hConnect As Long, ByVal sVerb As String, ByVal sObjectName As String, ByVal sVersion As String, ByVal sReferer As String, ByVal sAcceptTypes As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long Private Declare Function HttpSendRequestA Lib "wininet.dll" (ByVal hRequest As Long, ByVal sHeaders As String, ByVal dwHeadersLength As Long, ByVal lpOptional As String, ByVal dwOptionalLength As Long) As Long Private Function submitPost(ByRef host, ByRef url_path, ByRef sendString) As Variant Dim dataArray() As Byte, dataPosition, dataSize 'WinInet初期化 Dim hInternet hInternet = InternetOpenA(vbNullString, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0) If hInternet = 0 Then submitPost = dataArray Exit Function End If 'サーバ接続 Dim hConnect hConnect = InternetConnectA(hInternet, host, INTERNET_DEFAULT_HTTP_PORT, vbNullString, vbNullString, INTERNET_SERVICE_HTTP, 0, 0) If hConnect = 0 Then InternetCloseHandle hInternet submitPost = dataArray Exit Function End If 'リクエストを初期化 Dim tmpURL As String * 255 tmpURL = url_path Dim hRequest hRequest = HttpOpenRequestA(hConnect, "POST", tmpURL, "HTTP/1.1", vbNullString, 0, INTERNET_FLAG_RELOAD, 0) If hRequest = 0 Then InternetCloseHandle hConnect InternetCloseHandle hInternet submitPost = dataArray Exit Function End If 'リクエストを送信 Const strHeader = "Content-Type: application/x-www-form-urlencoded" HttpSendRequestA hRequest, strHeader, Len(strHeader), sendString, Len(sendString) 'データ取得 Dim readResult, tmpArray(1023) As Byte, tmpPosition, tmpSize dataPosition = 0 dataSize = 0 Do tmpSize = 0 Erase tmpArray readResult = InternetReadFile(hRequest, tmpArray(0), 1024, tmpSize) If Not readResult = 1 Or tmpSize = 0 Then Exit Do End If dataSize = dataSize + tmpSize ReDim Preserve dataArray(dataSize - 1) For tmpPosition = 0 To tmpSize - 1 Step 1 dataArray(dataPosition) = tmpArray(tmpPosition) dataPosition = dataPosition + 1 Next Loop 'クローズ処理 InternetCloseHandle hRequest InternetCloseHandle hConnect InternetCloseHandle hInternet submitPost = dataArray End Function Public Function downloadFilePost(ByRef targetURL, ByVal sendArray, ByRef savePath) As Boolean 'URLの分解 Dim startE, endE, host, url_path startE = InStr(1, targetURL, "//") + 2 endE = InStr(startE, targetURL, "/") endE = IIf(startE > endE, Len(targetURL) + 1, endE) host = Mid(targetURL, startE, endE - startE) url_path = Mid(targetURL, endE) 'ポストデータのエンコード Dim jscript With CreateObject("ScriptControl") .Language = "JScript" Set jscript = .CodeObject End With Dim ix, sendBuffer For ix = 0 To UBound(sendArray) Step 1 sendBuffer = Split(sendArray(ix), "=") sendArray(ix) = sendBuffer(0) &amp; "=" &amp; jscript.encodeURIComponent(sendBuffer(1)) Next Set jscript = Nothing Dim data data = submitPost(host, url_path, Join(sendArray, "&amp;")) If LenB(data) <= 0 Then downloadFilePost = False Exit Function End If 'バイナリで書き込み With CreateObject("ADODB.Stream") .Type = 1 .Open .Write data .SaveToFile savePath, 2 .Close End With downloadFilePost = True End Function
あ、まず前提として、
はたして貴女を幸福にするかどうか、それはまた別問題だけれど。
IT系の超かしこい男なども多く、
多くっつーかIT系でないのにプログラミング大好き男っていうのは超かしこい学生(まぁこれは有望株)か研究者系なんか、
あとはまったくかしこくもないクセに頭いいつもりして「Lispやってます(キリッ ハローワールドくらいですが」とか言っちゃうアホしかいないわけで、
したがって、釣り師たる女たちにとっては、
なかなかあなどれない釣り場です。
では、プログラミング大好き男に「どの言語が好き?」と訊ねられたとき、
まず最初に、その男がCOBOLのようなタイプのレガシーコードと
あとはC/C++、そして(TechEdに参加するほどではないけれど)VisualBasicが大好きな、
貴女はかれの目を見て、微笑みとともに質問など無視して、こう言いましょう、
「わたしが、仕様書を作ってあげる♪」
これこそまさに必殺の答えです。
そこでプログラミング大好き男が、えへへ、とやにさがったならば、
貴女は、ひそかに、「コピペ量産しやすい技術的ポイントを抑えた仕様書」あたりを
ひそかに練習しておきましょう。これで成功まちがいなしです。
しかし、ここでは、もう少しハイブロウな(?)いわゆるプログラミング好きの男の
落とし方をお伝えしましょう。
「わたしは、JVM上のScalaが好き。
型推論もあるしラムダ式やクロージャもスクリプト言語みたいに書けるの、豊富な組み込みのコレクションメソッドはいつも便利だし、
XMLリテラルもCaseクラスによるパターンマッチもTraitベースのMixi-inも、大好き♪」
もしも貴女がそう答えたならば、
かれの貴女への恋心は、
20%増量になるでしょう。
なぜって、Scalaは、
コンパイルは遅いながらも、そこがまた
ちょっぴりメモリを多く積めばいい富豪プログラミングみたいなふんいきをかもしだしていて。
質高くふるまっていて、なおかつ、
JVM上で動くくせにJavaが「やるやる」と言ったまま実装してなかったラムダ式と仮想拡張メソッド、型推論を実装した功績もあって。
したがってScalaこそは、
本来なんの接点もないまったく縁もゆかりもない別々の世界に生きている、
インタプリタ言語大好きな綺麗系OLと、玉もあれば石も混じっている、そんなプログラミング大好き男たちが、
この世界で唯一(いいえ、JVM系列のJRuby、Clojure と並んで唯三)遭遇しうる場所です。
●
では、参考までに、危険な回答を挙げておきましょう。
プログラミング大好き男に「どの言語が好き?」と訊ねられたとき、
「MicrosoftのVisual Basic for Applicationが好き♪ 週3回は Excelでコーディングするの。」
特にOfficeは平凡ながら、ま、無難にまとめてあるものの、
しかし、「新UIのリボンUI!」「メトロUI対応!」とかなんとか無意味な自慢を吹聴し、
VBAはさらにプログラミングについての謬見を撒き散らした罪がありますから、プログラミング大好き男にとっては天敵なんです。
ティーガー戦車乗りのオットー・カリウスは「ティーガー乗りなら誰でも片側の履帯がはずれ僚車に牽引されて帰ってきた経験を持つはずだ」 って言ったけど
社内SEかSIerなら誰でもクソみたいな前任者が書いたクソみたいなExcel-VBAコードを直した経験があるはずなんです。
また、もしも貴女が「PHPが大好き♪ あたしが書いたPHPのWebサイトが、さくらサーバに7件あるよ♪」
と答えたとしても、同様の効果をもたらすでしょう、
なぜって、PHPは、1990年代にはWeb系を目指す人にとっては簡単で要件を満たすWebサイトが簡単に作れる輝きの道だったものの、
しかし2000年代そうそうから、セキュリティ関係の問題で転落し、
いまや、あの貧弱な言語能力では、Rubyの魅力に遥かに及びません。
(注1)
「わたし、.NET FrameworkのC#が好き、フォームアプリでも書くけど、
最高に好きなのはASP.net♪ SQLServer連携も、ajax control toolkitもすっごくおいしいの。」
と、答えたとしたらどうでしょう?
なるほど、貴女の趣味は高く、
たしかに.NET Frameworkは、C# が cool であるのみならず、
.NET Framework上で動く F# や IronPythonやIronRuby、マネージJScriptも最高においしいんですけれど、
しかし、貴女の答えを聞いて、プログラミング大好き男はきっとおもうでしょう、
(なんだよ、MS信者な女だな、カネかかりそう)って。
(注2)
貴女が、プログラミングが大好きで、言語の名を挙げるにしても、
たとえば、JavaScript(node.js)ならば安心でしょう、
なぜならば、JavaScriptは、かけだしのプログラミング初心者にもマニアにもともに愛されるめずらしい言語で、
貴女がその名前を挙げても必ずしも、(jQueryがやっとの初心者と思われることはあっても)あなたがプログラミング言語おた宣言をしているとは受け取られないでしょう。
むしろ「へぇ。ちゃんとprototypeは使ってる?」と聞かれたら「当たり前じゃない。むしろnode.jsでいいMVCフレームワークが分からないんだけど…」と話を振ってみましょう。
男は嬉々として、30個くらいのnode.jsのフレームワークを教えてくれることでしょう。(まぁどれもどれで帯に短し襷に長しなんですが)
あるいはRighno上で動かしたコードをnodeへ移植する話とか、CoffeeScript、甚だしきはClojureScriptを振ってみてもいいかもしれません。
しかし、たとえば、世界が(つーか竹内先生とポール・グレアムが)誇る超絶関数型言語の名作、Common Lispにせよ、
selfと書きまくることと海外で使われてることに定評のあるPythonにせよ、
バージョンアップごとに言語仕様が変わり、かなり素敵なものではあるもののobsolatedな罠にはまりやすいRubyにせよ、
まったく読めない$_だらけで頭悪い仕様をリセットしてPerl6にする(そしてまた全く読めない)Perlにせよ、
気さくなクジラ飛行机さんがふるまう素敵においしい日本語プログラミング言語のひまわり・なでしこにせよ、
基地外トリッキー言語の代表BrainFxck・Glass・Missa・WhiteSpaceにせよ、
ましてや貴女が、「Haskellが大好き♪ わたし、プロジェクト・オイラーの問題もうほとんどHaskellで、解いちゃった♪」
と答えたならば、どうでしょう?
これはかなり博打な答え方で、
なるほど、Haskellは、純粋関数型でありつつも副作用のある操作が行える超絶名言語ゆえ、
あなたがそう答えた瞬間、プログラミング大好き男がいきなり超笑顔になって、
「へぇ、やっぱりHaskellなら大抵の問題は4行以内くらいで解いちゃった?」とか言いながら
鼻の下がだら~んと伸びちゃう可能性もあるにはありますが、
しかし、逆に、(なんだよ、この女、プログラミングおたくかよ)とおもわれて、どん引きされる可能性もまた大です、
なぜって、必ずしもプログラミング大好き男がプログラミング大好き女を好きになるとは、限らないですから。
男たちは、女を導き高みへ引き上げてあげることが大好きゆえ、
もしも貴女が、「Haskellが大好き♪」なんて言ってしまうと、
そこにはもはや、男が貴女に圏論のモナドを教育する余地がまったく残されていません、
したがって貴女のその答えは、
プログラミング大好き男の貴女への夢を潰してしまうことに他なりません。
ま、ざっとそんな感じです、貴女の目にはプログラマーたちはバカでスケベで鈍感に見えるでしょうが、
しかし、ああ見せて、プログラマーはプログラマーで繊細で、おざなりに扱われると傷つきやすく、ローカル変数の名前一つにも気を使い、女と自分の将来に夢を持っています、
貴女の答え方ひとつで、プログラマーの貴女への夢は大きくふくらみもすれば、
一瞬で、しぼんでしまいもするでしょう。
●
では、スキットを繰り返しましょう。
「わたしは、JVM上のScalaが好き。
型推論もあるしラムダ式やクロージャもスクリプト言語みたいに書けるの、豊富な組み込みのコレクションメソッドはいつも便利だし、
XMLリテラルもCaseクラスによるパターンマッチもTraitベースのMixi-inも、大好き♪」
そして、その瞬間、プログラミング大好き男の目がらんらんと輝いたなら、
貴女はこう重ねましょう、
「それからね、いま、わたしが使ってみたいWebアーキテクチャは、
Play Framework、素敵なリアルタイム嗜好のアーキテクチャって噂を聞いたから。
あなたのお暇なときがあったら、わたしをPlayへ連れてって♪」
これでもう完璧です。
PlayFrameworkと、Play(遊ぶ・じゃれる)のダブルミーニングでかれの股間も刺激しちゃえます。
そうなったらこっちのもの、
デートの日には、ペアプロ用に Happy Hacking Keyboard をばっちり決めて、かわいい下着をつけて(注3)、
github.comの通販で売ってるoctcatのTシャツか、facebookの「いいね!」ボタンがムネのところにあるTシャツ、 あるいは初音ミク(ないし彼のお気に入りのアニメキャラ。北米ならMyLittlePonyで鉄板なんだけど)のコスプレを着てゆきましょう。
その日から、プログラミング大好き男は貴女の虜になるでしょう。
注1:
(と、書いたもののPHPの現状をよく知りません。グローバル変数だらけになるのとか旧ASPみたいなもんなのかなぁ。count($array); とか書くのアホと思うがpythonも同じだった)
(あと、マジで単機能とかTwitter連携とか診断メーカー的なのでもPHPで7つも作ってる女子居たら付き合いたい)
注2:
もっとも。objective-Cなんていう言語をやることに比べれば個人で行う程度なら金のかからない手法もなくはないのですが。
注3:
プログラマーにとっての「かわいい下着」と、女性にとっての「かわいい下着」の定義にずれがあるので注意。
半数くらいのプログラマーはしましまぱんつが可愛いと思ってる気がするので、妙齢の女性が着用するには抵抗あると思うが、ボーダー柄のコットンショーツ(ただしキャラ絵のは除く)とか、
過度でないていどにフリルがついたものがオススメ。また、色は、レッドだとプログラミング大好き男は引いてしまう(だってそれはコンパイルエラーのときの色だ)ので、薄ピンクかホワイト、薄ブルー、せめて黒(に差し色でピンクとか)あたりに留めたい。
補記:
元ネタ: http://tabelog.com/tokyo/A1301/A130101/13002457/dtlrvwlst/3464106/
補記2:
「プログラマー」か「プログラマ」かの問題については、特に意味は無いが前者を採用した。
補記3:
言うまでも無いけど、ネタです。
「書き方」のとらえ方によるとは思いますが、「同じレイヤーの言語」と言われる程度には似ていると思います。
ただ、JscriptとJavascriptは似てる?と問われると首を傾げるくらいには違うと思います。
defaultで強制させるべきかと...
いや、ちゃんとこれはテキトーでズボラで汚くても書ける利点があるんだよ!
TMTOWTDIってやつです。自らグルー言語を名乗り、-pスイッチとかワンライナーとかには邪魔でしかない。
キチッと書きたい奴はキチッと書きゃいいし、ダラッと書きたい奴はダラッと書けばいい。
ただし、個人ならな!
仕事ならまあ...
Flashで作るかFlexで作るかの違いだと、レイヤーやムービークリップの概念とか共通だから問題無いぞ?
C99とANCI以前のCとか、ものすごい違うのだが?
昔からメンテしてるコードだと、コンパイラに「古い組み方です」的なwarning吐きまくられたりするし。
というか、CPUのbit数が違うだけで別物になる処理系だしな。
たまたまActionScriptが差すものの範囲が小さいから、混同されがちだが、ActionScriptはあくまで言語であって、ActionScriptが呼んでいるFlashのライブラリとは別物という解釈。
JavascriptだってDOM使わない独自拡張製品もいくつかでてるしな。かならずしもブラウザでDOMがなければJSというわけでもあるまい。
それだと、Flashで作るかFlexで作るかの違いについてお前が語るのはおかしくね?
まぁ、そう拡大解釈しても、
とかは依然あるわけだがなー。
追記: トラバ間違えた。
ただ、HTMLの解析やJavaScriptの仕様(JScriptという独自言語を使ってたり・・・)がめちゃくちゃ。
クロスブラウザの敵であって最強の反逆者
個人的には、使う価値なし。
昔はこれが1番と言われていたが、最近はChromeに負けている。
拡張性はあるが、起動が重く、低スペックにはしんどいことがある。
Googleが作ったことだけあって起動もブラウジングもJavaScript実行も全てが早い。
最強。
ただし、ユーザーの声が開発者に届きにくすぎる(これはIEでも言えるが)
といった感じ。
一般人は手を出さなくてもいい
これから就職活動するバカはいないだろうけど、そういう人もいるだろうから少し書いておこう。
どちらかというと、アンチMS派なUnix技術者がWindowsだけの世界で仕事をする辛さを。
Unix技術者は、業務実績にSolaris/AIX/Linuxって書いてあってもちゃんと質問しろ。Windowsの仕事は無いですよね?って。
僕が食べるために職を手にしているこのIT業界というのは、バッドノウハウとMicroSoftとExcelで出来ている。
その為、僕が手にしたUnixの知識は、特定の仕事以外でしか役に立たないし、使わない。
viだろうが、TeXだろうが、Xの知識よりも、MFCとVBAのちょっとした知識のあるヤツが上にみられる。
ExcelとWindowsの知識があればそれだけで仕事になるからだ。
いいか、viやTeX、Xなんて捨てちまえ、Excelがあればそれでいいのだ。
MSでは、ActiveXを使ってCOMを操作し、クライアントのレジストリを操作し、IE単体でできないことをやってしまうヤツがハッカーと思われている。
VBAマクロで作ったなんちゃってツールを3時間で作れるほうが、
perlやruby/pythonで、より少ない時間で作ったツールよりも凄く思われてしまう。
そして、それができるヤツの方が、Unix技術者よりもよりハッカーであり、技術力があると思われている。
ブラウザを例にしたが、
javascriptでalert/confirmを出すよりも、vbscriptでMsgBoxの方が多くのことができるから、
javascriptでNumberの計算よりも、vbscriptでDecimalを使った方が倍密度の計算ができるから、
vbscriptを駆使できるヤツは、凄く重宝される。
いいか、javascriptで汎用的に書くのなんてナンセンスだ。javascriptなんて捨てちまえ、覚えるのはJScript実装(WSH)だ。
この業界、何が不満になるかというと、
MSの、もっというとWindowsのことしか知らないヤツが多すぎるということ。
そういうヤツらは、Windowsだったらこんなこともできるのに、なぜUnix/Linuxだとこんなこともできないのか。と言う
そういうヤツらは、Windowsの未修正バグの合間を縫いながら中途半端な実装しかしない。
だって、中途半端(もしくは大雑把)な実装で動いているものの中で動くから。それ以上に実装しようとしてもできないのだ。
いいか、win32のメッセージングの仕組を覚えるんだ。無理矢理send_keyみたいなコードを書けるようにしろ。
コマンドを連結するよりも、結果に近いコードを書くんだ。線形になろうがヤツらは気にしないだろう。
何故か。
それは、.NETで作ればお客さんの要望が実現でき、Excelと連携できるからだ。
ヤツらは、C/Sの世界でこそ役に立つ技術者だが、Webの世界に連れてきてはならない。すぐに実装がIEだけになる。
ヤツらにLLを覚えさせるのは無理だ。
クロージャなんて知らないし、高階関数やカリーなんてコードを教えてみろ。後から辛くなるのは自分だ。
ヤツらにはPHPを教えておけ、それだけで満足する。すごいヤツになった気にさせれる。
バッドノウハウ慣れしているヤツらはそれを使ってコードを書いてもらえ、rubyで書かせるよりも修正が20倍楽だ。
いいか、まとめるぞ。
今まで一生懸命Unixを勉強してきたのは無駄だ。いますぐ忘れるんだ。
Excelを今から覚えろ。VBAを覚えろ。そしてMSの動きを身に着けるんだ。
Windowsでは単位がFormだ。それが標準出力と標準入力と思え。ときどきSheetとかWorkbookになるぞ。
ストリームやファイル操作には気をつけろ。Unixの気分でいると思わぬところで抜けが出るぞ。
IRCは使うな。Jabberを使うな。メッセンジャーを使え。移行のお薦めはGaimだ。Windows版がある。
viの使用頻度を減らせ、変なコマンドを身に着ける前に、秀丸マクロを書けるようにしろ、Notepadのショートカットを覚えとけ。
BindとかApache(Httpd)の知識はいらない。IISだ。ActiveDirectoryだ。
文字コードはCp943cを何がなんでも押せ。Shift_JISっていう大雑把な伝えかたはダメだ。絶対cp943cにしろ。UTF8/UTF7との格闘で身も心もぼろぼろになるぞ。
汎用性なんて無いんだ。Windowsというプラットフォームがあれば。
ああ、心が渇いていく。
http://anond.hatelabo.jp/20070803143914
(*)このエントリでは増田がとっても感情的になって、C言語、SQL、JScript, JavaScript, Perlをけなす風潮に反発します。
確かにプログラミング言語やその周辺の技術は目的を達成するための手段でしかないのかもしれない。けれど、その手段を行使できるようになるために一週間そこらドキュメントやサンプルを読み書きするだけでおkな人って実在するのか?JavaやCにしたってどれだけ標準搭載の関数やらAPIがあると思っているんだ?そりゃあ実装に必要な部分さえ分かればいいんだろうけど、、。ぐすん。
俺はオブジェクト指向を肌で感じ取れるようになるまで1年以上かかったが、それでも完全に理解できているといえるのかよく分からない。それを一週間程度で理解できるだとおぉぉ、許せん、嫉妬してやるぅ。
ついでに言うと、誰でもできる仕事を一般化してプログラムに落とし込むのがプログラマの仕事だあああ、、、、とも思う、、、、うん、思うだけ。中学生にでもできるといいながら、人間に外注するってどういうことよ。誰でもできるんならパソコンに頼めよ。そういうプログラムを組めよ。優秀な人はコンパイラとか作れるんでしょ。もっと言えば、プリミティブな部分とやらを最初からプログラミング言語でしゃべっておけば、外注すら必要ないよ。外国の人を作業するとき英語でコミュニケーションとるでしょ?システムの設計とかもプログラミング言語でやれば?まさか日本語で適当に要件定義書書いて、外注に丸投げとか言わないよね。それとも、優秀な人はみんな理論屋になるってこと?
ぐすん、、ぐすん、、そりゃあさ、僕はHDLでCPU設計とか、 Yacc/Lexでコンパイラ作成とか、OS作成とかやったことないし、できないよ。C/C++だってDirectXの3Dに関わる理論とオブジェクト指向が分からなくて挫折したよ。XoopsみたいなCMS作ろうとして要件定義や設計がぜんぜんできなくて挫折したよ。要件を決めずにプログラム組んでたら、後から次々と要求変更を思いついてしまって、手が回らなくなって頓挫したよ。データベース設計もまともにできないしSQL?なにそれって感じだよ。電子回路?トランジスタの使い方・つなぎ方とか、増幅率とかがうまく計算できなくて挫折したよ。
だから(?)「Perlなんて簡単だよね。そんなものにしがみついてるなんてレベル低いなお前」みたいなこと言うおまえなんか大嫌いだ。
http://www.atmarkit.co.jp/news/200704/23/eweek.html
これを見て、へーと思ったので、何ができるんにゃろめとあれこれかんがえてみたりした。
<script type="text/javascript">alert('test')</script> <div onClick="alert('test')">test0</div> <A href="javascript:alert('test')">test1</A> <A href=vbScript:MsgBox("test")>test2</A> <A href="javas cript:alert('test')">test3</A> <A href="javas	cript:alert('test')">test4</A> <div style="font-size:!!expression(alert('test'));">test5 !!を外せば動くけど死ぬよ</div> <iframe src="test.html">test6</iframe>
LiveScript
JavaTeaScript
http://www.fureai.or.jp/~tato/JS/scripttg.htm
にゃ!?
こんなにいっぱいスクリプト言語あるの・・・?
Google Maps以前のころ。ヘビーユーザーのあいだではJavascriptオフが常識になっていた。度重なる時計の再発明に業を煮やし、IEのActiveXに警戒心を抱き、不安定なOSをさらに不安定にするため暗躍するのがJavascriptでありJScriptだった。
Google Mapsがあれだけのインパクトを与えたのは、ひとえに、こういった先入観を打ち砕いたからに尽きる。信じられないことに、Javascriptって便利なのだ。実に見事な枯れた技術の水平思考である。
Ajaxという言葉が帰納され、ライブラリがぼこぼこと発表される。ネイティブオブジェクトの拡張と、クロスブラウザのための供物ラッパー集合体たるprototype.jsを筆頭に、様々なものが世に出、様々なアプリケーションがより手軽に実装できるようになった。
script.aculo.usやLightBoxやmoo.fxといった、エフェクト中心のライブラリも出回り始める。IEのせいで煩雑な記述を強要されたグラフィックアーティストが、DOM操作によって問題を解決しようとし始めた。リンクにmouseoverしたらうっとうしいエフェクトを振りまくスクリプトが当たり前のように設けられた。このはてなも、いつの間にか大量のMochikit/*.jsを読み込んでページのレンダリングを遅らせている(たまにad.hatena.ne.jpのレスポンスが遅いときなど目も当てられない)。これらに共通することは、多くの人がそれを望んでいないということだ。
もちろん好ましい方向への進化もあった。OperaがUser Javascriptを発案・実装し、FirefoxもGreasemonkeyでそれに追随。SafariもCreammonkeyを得て、いわゆるモダンブラウザユーザーは、豊かなスクリプトライフを楽しめるようになった(IEにもなんとかいう同様の機構を実現する環境はあるが、IEユーザーには敷居が高いのかほとんど見かけない)。Livedoor ReaderやGoogle Readerはイベントを操作することで、キーボードでの操作を今までにないほど豊穣にした。入力フォームのリアルタイムバリデーション、Google AnalyticsやAdsenseの導入容易さなど、見るべき意匠もいくつかある。
しかし平均的に考えて、何の変哲もない個人ブログにJavascriptは必要ないものだ。素人がつくったタイマーは、いつもユーザーを憂鬱にする。素人がつくったAjaxサイトは、だいたいの場合IEとFirefox以外を排除するもっともらしい理由を得るためにAjaxを使う(Dellが自社サイト上で「Netscape4.6以上で閲覧せよ」と警告することによって、やる気のなさを主張するようなものだ)。
我々が自分のブラウザ上でページを表示するとき、Javascriptによる意外な効果などまったく期待していない。UIにおいては最速こそ正義、というmala氏の言葉を引用するまでもなく、不必要に重いサイトはそれだけで忌避するに足る理由となる。流行を追って常識を忘れるのは愚かとしか言いようがない。
Firefox(のNoScriptアドオン)とOperaは、ページごとサイトごとにきめ細かなJavascriptの挙動を設定できる(不勉強にしてSafariについては知らない。IEはできない)。Javascriptに限らず、広告ブロックや不要ファイルの無視、特定Flashの再生可否など、ユーザーは「何が要らないか」を指定でき、要らないものを気軽に突っぱねられるようになった。不要なものを除去する習慣が、ヘビーユーザーのあいだで間違いなく形成されつつあるのだ。
何かひとつのことをするためのJavascriptは、これからしばらく出現し続けるだろう。ウェブマスターが、重厚長大な飾りで貧弱なコンテンツを隠すためだけに。何かを拒絶するテクノロジーは、今後しばらく発展し続けるだろう。十重二十重のラッピングに疲れた人たちのために。