アカウント名:
パスワード:
アプリケーションレベルなら参考にする事もあるけれど、 その場合にはOS依存の(ほとんど)無い部分が大半なので、 オープンソースがOS(カーネル)の利点になるとは思ってない。
JavaとかRubyとかSmalltalk(などのOSとは切り離された世界)「で」いわゆるアプリを書くのが、いいんじゃねーかと。
たとえばこの(GCの)場合だと、 GCという概念(とその実働物)が自分らの足もとに「存在」することさえ 知っていればよくて、 その実装そのものがどういう風に動くものである(つまりどう実装されてる)かは、 ほぼどうでもいい知識に過ぎないのでは?
子どもに易しいものは、当然大人にも易しいんで、 開発効率という意味でも、 「より多くの部分が、より高級な言語によるproductで構成されたシステム」が もっと増えて欲しいなと思っています。
教育現場にとってどのように重要なのか教えてください
ソースを調べるならWindows上においておけばいいでしょう。
社会に出てても自宅でも間違いなく触れるWindowsを学校で 触っていれば、本人によっての学習コストが大幅に下がります。 そのへんのコストを比較していますか?
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家
見当外れだとおもうが、、、 (スコア:1, すばらしい洞察)
そういう観点でOSも選択されてほしい。
Linuxを使うこと自体が目的になるのではなくて、Linuxを使うと、
Windowsより、こういうところで良かったです、とか、そういう意見があるのが
自然じゃないだろうか。
Re:見当外れだとおもうが、、、 (スコア:0)
プログラムを組むようになれば、自然とソースコードが
公開されていることのありがたさは実感できるものだと
思うので、Windowsと逐一比較しなくてもLinux(
Re:見当外れだとおもうが、、、 (スコア:0)
>公開されていることのありがたさは実感できるものだと
>思うので、Windowsと逐一比較しなくてもLinux(及びオープン
>ソースソフト)の利点を理解することはできると思います。
プログラムを組むときに、ソースコード公開がありがたいの
は確かだが、OSのソースを見
Re:見当外れだとおもうが、、、 (スコア:1)
ソースコードが参考になるのは、初心者がアプリケーションを作るときだけではなくて、中級者が(OSの機能を一部移植するくらいの)より高度なプログラミング技術を習得する場合や、さらに上級者がカーネルをハックして、独自OSや特殊目的のOSなどを開発する場合など、様々な段階があります。その場合、上から下まで自由に閲覧できるものがある(またそれに親しんでいる)というのは、重要なのではないでしょうか?
Re:見当外れだとおもうが、、、 (スコア:1)
コストにしても予算は決まっている以上安いに越した事はないわけで。
特に教育用途ならその気になれば好き勝手いじれる環境は思わぬ逸材を生み出す事もあるかもしれませんよ。
ただし、教育する側の質や前もっての十分な教育や効果的な利用法の検討は重要ですし、
現状のLinux系のUIでは普通に使う上で不完全なのは否めませんね。
このあたりは有志の方々に頑張っていただきたいものです。
(私はUI系全く理解無しですからオマエが創れってのはナシで…)
ちょっと極端な例ですが、先日ある事情で母校の高校にお邪魔したところ各教室に入っているのはLindowsでした。
どうせならもっとマシなディストロにして欲しいというのはひとまずおいておいて、
ロクな教育をしていないせいで日本語すらまともに打ち込めない生徒が大半で、
管理の先生にこれをお話ししたところ、イタズラされなきゃそれでいいというお返事を頂き唖然とした事がありました。
高校としてはコストが安い事しか考えて無くて利用法や教育計画を考えていない所為で
生徒からはLinux=使えねぇという意見ばかりで悲しくなりましたね。
一般的な高校だと現状では結構こんなものなのかも…
#
#この分ではITR立国への道はまだまだ先は長そうですね。
#
#状況はいつも最悪、でもそれが当たり前
ty(ry (スコア:1)
○IT立国
謹んで訂正させていただきます。
#
#何で気づかないかなぁ
#
#状況はいつも最悪、でもそれが当たり前
Re:見当外れだとおもうが、、、 (スコア:1)
上層(アプリ層)のライブラリとかにまで OS提供のAPIを
がんがん使う...という人々(「中級者」かな?「初級者」かな?)が多くて
へき易した記憶もまた、あります。
Delphi(のコンポーネント)畑で、ですが。
Delphでは、OpenSourceと呼べるかどうかはともかくソース公開の
コンポーネント(クラスライブラリ)を公開する文化は存在しました。
で、それらのうちの、妙に多くの割合の奴が、APIのラッパーだったんですよね(^^;
いわゆるアプリ(やそれ用のライブラリ)を作るときは、
下層にはあんまり手ぇ出さないで欲しい、そのほうが「きれい」なプログラムになるだろうよ、
と思ったものでした。
OpenSourceなOSには、いろんな利点や魅力が有るってのは同意しますが、
アプリを作る際に直接役立つ度合は、むしろ少くあってほしいと思っています。
で、
JavaとかRubyとかSmalltalk(などのOSとは切り離された世界)「で」いわゆるアプリを書くのが、いいんじゃねーかと。
いわゆるふつーの人々の多くが、実世界のシェルスクリプト [rubyist.net]ってなことをやる、
という方向性を目指すのが望ましいなあと思っています。
もちろんカーネルハッカーの卵も必要ですが、それは少数派...ですよね?
---
API云々については、たぶん、
Win系のプログラミング(?)雑誌とかの書き方が、まずい
ってのも有るんでしょうね。
つまり、「VBの次にチャレンジすべきはAPI叩きだ」みたいな論調の雑誌とかが。
何を呼び出すか「だけ」に対して、そんなに拘りを見せないで欲しいと思います。
プログラミングってのは、いろんな要素から成り立っていて、
何(どんなAPI)を呼ぶかなんてのは、そのうちのほんの一部の問題でしかないわけで。
Re:見当外れだとおもうが、、、 (スコア:1)
アプリを書く上でそういう階層性を守って欲しいというのには同意します。ただ、最近、あまりに下層のことを知らないと言うか、下層で起きていることに対する感覚がないプログラマ(素人ではない)が多いのには困っています。
常駐して動くサーバープログラム(by Java)を外注したのに、使っているうちにどんどんメモリを食い潰すプログラムを書いて納入したり、発注の目的はスピードアップですと明言しているのに明らかに GC おこしまくるようなプログラム書いてきたり。(どうもどういう時にメモリが無駄に消費されるかがピンと来ないらしい)
G7さんのいうようにプログラミングはいろんな要素からなっていて、優雅に水面を滑る白鳥も水面下では必死で漕いでいることも、(プログラマの教養として)知っておいて欲しいところ。
まあ、これらは中学・高校で教えるような話ではないのでオフとぴかもしれませんが、多少ともそちら方面に進もうとしているなら、自分が寄って立つ土台の下は、早めに覗けた方がよいような。(強制的に覗けというわけではない)
Re:見当外れだとおもうが、、、 (スコア:1)
>で起きていることに対する感覚がないプログラマ(素人ではない)が多いのには困っています。
>常駐して動くサーバープログラム(by Java)を外注したのに、使っているうちにどんどんメモリを食い潰すプログラムを書いて納入した
>り、発注の目的はスピードアップですと明言しているのに明らかに GC おこしまくるようなプログラム書いてきたり。(どうもどういう
>時にメモリが無駄に消費されるかがピンと来ないらしい)
どうなんでしょう?
たとえばこの(GCの)場合だと、
GCという概念(とその実働物)が自分らの足もとに「存在」することさえ
知っていればよくて、
その実装そのものがどういう風に動くものである(つまりどう実装されてる)かは、
ほぼどうでもいい知識に過ぎないのでは?
GCについては、それの原理とかを書いた
本やwebページや論文(?)などを読めば
それで十分だったりしませんか?
もうちょっと具体的にいえば、方式としてmark & sweep法と参照係数法に大別されて、
それぞれの動作原理の「概要」はカクカクシカジカで...という程度の知識があれば
それでいいんではないかと。
というか、かく言う俺もGCを自力で実装したことはないっす。
boehemさんを「使った」ことが有る程度。
こういう程度の"感覚"じゃ不足ですか?(^^;
>まあ、これらは中学・高校で教えるような話ではないのでオフとぴかもしれませんが、多少ともそちら方面に進もうとしているなら、自
>分が寄って立つ土台の下は、早めに覗けた方がよいような。(強制的に覗けというわけではない)
実装そのものまで見るってのは、土台(の設計図や施工報告書)だけじゃなく、
現状の土台の腐り具合まで(^^;見る、という感じでしょうね。
実装...というか部品まで見れるという性質が子どもに益する(かも知れない)点といえば、
それを子どもが「ばらして遊ぶ」ことが出来るんじゃないか、という期待が
有るんじゃないかと思います。
が、今の(典型的にはC言語の)ソースって、子どもどころか大人でもバラせないような醜い代物なんで(^^;、
それ自体の教育効果がどれくらい望めるかってーと、ちと疑問かなと思っています。
部品を通り越して分子にまでバラされてしまうような小さすぎる粒度を、
いきなり突き付けられる感じなんで。
たとえばSqueakToysの粒度が、どれくらい「適切」なのかは、俺にも判りませんが、
SqueakToysじゃなく現状一般的なOSだのなんだのといった足周りのソースは、えてして、
そういう小さすぎる粒度の言語に基づいて作られています(よね)...
子どもに易しいものは、当然大人にも易しいんで、
開発効率という意味でも、
「より多くの部分が、より高級な言語によるproductで構成されたシステム」が
もっと増えて欲しいなと思っています。
どーなんでしょう?例えばlinuxでいえば、
kernel以外は全部、Cじゃない(Cより高級な)言語で書かれたもので構成されたDistroとか...
#ただ、Unixに関していえば、新しくもないUnixというものを、いまさら他の言語で作り直す必要が無い、
#というのも事実上言えてますが。
Re:見当外れだとおもうが、、、 (スコア:1)
GC の具体的な実装を知る必要はないのですが、なにがメモリを消費するのか、ということさえ知らないプログラマが多いのが現状のような気がします。
例えば string の足し算(つまり append) をすれば、そこで当然のごとく新しい string が alloc され、それを回収するために(プログラムによっては) 頻繁に GC が起きてしまう、ということが直感的にわかっていないと、3重ループの一番内側など計算のボトルネックになりそうなところで、そんな無駄遣いをしてしまう。そんなところはちゃんと GC に頼らないで自分で管理しているメモリ領域(例えば buffer のようなもの)で文字列を操作するようにして欲しい。
つまり、GC は万能ではないのに、GC に頼ったプログラムしか書けない、GC に頼ってはいけない部分がどこかがわからない、といったことは、結局、下で起きていることを想像できないからではないのかという気がしています。
いわば、現状のプログラマ養成は、建築の人に土台の作りを教えないようなもののような気がしています。なので、砂上の楼閣を平気でつくって、製品として納入しようとする。
まあ、こういうことを言うようになったのは、自分が歳を取ったからなのかもしれません。
# いまだに emacs + make + gdb ですから。
# マウスを使わざる得ない統合環境はなかなかなじめないんですよね。
# すみません。年寄りの愚痴です。
たしかに一般向けのものとして、優しくプログラミングできるものがもっとそろって欲しいと思います。ただ、そういう簡単にプログラムできるようなものは、オフショアで、つまり労働力の安い地域でも簡単に作れるわけで、教育で日本のIT力をあげるとか言った観点からはあまり貢献はしない気がします。だからソースで勉強しろというのは短絡かもしれませんが、下でうごめいていることを感覚として知っていることが、上で高度でかつしっかりしたもの(=高付加価値)を構築する上では重要だと考えているので。
# かなりこのスレの本筋からはハズレた議論になり、申し訳ない。
Re:見当外れだとおもうが、、、 (スコア:0)
Re:見当外れだとおもうが、、、 (スコア:1)
「教育」といっても、別に先生が生徒に教えるだけが教育ではないでしょう。例えば学校の図書館のように、生徒が自主的にかつ安価(できれば無料)で調べることができる環境を用意するのも、立派な「教育」。(さらに調べた結果やそれを発展させたものを自由に発表できる環境があれば完璧)
「教育現場」=「教師の(経済的・技術的)都合」という意味なら、ソースが公開されていることはあまりメリットがないのかもしれませんが。
Re:見当外れだとおもうが、、、 (スコア:0)
社会に出てても自宅でも間違いなく触れるWindowsを学校で
触っていれば、本人によっての学習コストが大幅に下がります。
そのへんのコストを比較していますか?
どっちみち、「無料」という点だけなんですよ。
教育現場にLinuxを導入する理由は。
Re:見当外れだとおもうが、、、 (スコア:0)
> 触っていれば、本人によっての学習コストが大幅に下がります。
> そのへんのコストを比較していますか?
タレコミ文にもあるとおり「ITを教える教育、ではなくて、
ITを活用した教育」なので、その指摘は的外れです。
本実験の範囲では、そのコスト差は意味がありません。
Re:見当外れだとおもうが、、、 (スコア:1)
実際に動くものを目の前にしているときこそ、ソースなどの設計図の価値があるのであって、動きもしない設計図ながめてても、対した学習効果はないでしょう。設計図だけでいろいろ想像できるのは、それなりに熟達した段階ですから。
Linux 使っていたら学習できなくて、Windows なら学習できるものって、いったい何なんでしょうか? Excel のマクロの書き方? Word で意図しない挙動を回避する技? 効果的なパワポの作り方?
あるいは VB や VC でのプログラミング? いずれもあまり学校でやってほしくないなぁ。
いずれにしても、
[1] ITによる教育(教える側の都合)
と
[2] ITの教育(教えられる側の都合)
があって、[1] に対してはコスト面で、[2] に対してはソースによる教育効果という点でオープンソースに利点がある。(メンテナンスまで入れると [1] のコストはわかりませんが)
一方、[1] については便利なツールが少ない、[2]に対しては普及が進んでいる Windows に固有の技が身に着かないという欠点がオープンソースにはある。このうち、[1]に対する欠点はでかいかもしれんが、[2] に対する欠点はそれほど重要ではないと思いますが。