ぶっちゃけ始めるのにいい言語て何 part2
■ このスレッドは過去ログ倉庫に格納されています
某言語を習得して、SESで廃人になるよりはマシだけどな 30秒で始める動画編集(FFmpeg編)
input.webmの00:00:15から00:01:00までを切り取って
outputというファイル名で保存
ffmpeg -ss 00:00:15 -i "input.webm" -to 00:01:00 -c copy -copyts "output.webm"
1分30秒から最後までを切り取る
ffmpeg -ss 00:01:30 -i "input.mp3" -c copy "output.mp3"
PCの性能が低くても、切り取るだけなら数秒で終わるよ。
切り取る範囲が少しずれたくらいは気にしない。
FFmpeg > Seeking
https://trac.ffmpeg.org/wiki/Seeking >>424
マクロの記録で記録させてちょちょいと直せばいいだけなので、楽っすね!一番好きですよ!
って、センスのない入社3年目くらいのプログラマが言ってて失笑したわ。
それくらいいい加減な人でも使えるのがvba。でも、エンドユーザーに一番近いから、そこらへんのプログラマーよりは重宝されるねw >>444
ヤバい、入社3年どころの騒ぎじゃないw
今日はCの話が出たのでC推しで行ってみようかな?
Cの強みは何と言ってもアセンブラに次ぐ低級言語でありながらにして構造化言語であること。
つまりそれだけ痒いところに手が届く上にちゃんと構造化されてるってことかな。
ただ、ポインタはジャンプテーブルを使った高速化が図れたり、ポインタを参照するポインタなど
複雑な記述が出来たりするけれど、これが曲者で、変なところを参照すると変なものを読もうとしたり、
変なところに飛んだりメモリリークなどのバグの温床だったりもする。
初心者向きとは言い難い気もするけれど、それだけ痒いところに手が届く。
ちなみにC++は見ての通りCにプラスが二つ付いてるけど、C#の#はプラス4つが付いているって意味らしい。 まあ素人はそうだろね。
プロはLinux一択だけど。 言語とちゃうやんけw
>>445
そう。アセンブラと高級言語のハイブリッドみたいなところがいいかなと。
シフトだの論理和・論理積だのポインタだの、こっから始めると他の言語に
行ったときに、「ああ、あれね」という応用が利きやすい形が普通に出てくる
かと。
関数へのポインタを配列にして渡すとか変態的な応用もあるしw >>445
++を斜め上にしたという説もあるけど。 >>445
昔のwindowsは、C言語の中にアセンブラで書いたコードを入れたりできたよね。 C#が発表されたばかりの頃はシー・イゲタと読んでたな >>445
自分もCは悪い選択肢じゃ無いと思うけど、ポインタで挫折者が続出するってのもある。
あとは仕様の大きさとか。
8bitマイコンのアセンブラとかだと紙切れ一枚に全部載る。
もしくは数学の知識だけでプログラミング出来るHask(ry
>>451
特定のバージョンだけのバグみたいなものかと思ってたけど、完全に廃止の方向なのか。
お陰で64bitアセンブラの入門書買ったらCからアセンブラ呼ぶ為のHow-To本で、アセンブラでの変数宣言の仕方書いてなくて別途調べたぜよ。
ネットで調べても変数宣言の情報が英語しか無かったが。 >>455
あー、C++の話をするときにインラインアセンブラの話をしようと思ったのに・・・どうぞ続けてください。 うん。
インラインアセンブラの事。
それが無くなったせいで、とんだクソ本摑まされた。
あれだな。
Cからアセンブラ呼ぶ方法を本に纏めたいけど、それだけだとページ数が少な過ぎるんでアセンブラ入門書って事にしました的な。 文字列リテラルとして機械語を書いて、mainに設定するとか衝撃的だった えー
じゃ、初心者にお勧めする気は全くないけど
今日はアセンブラの話をしようかなぁ・・・
アセンブラはハードによって、また年代によって全く異なる場合もある言語。
機械語と呼ばれる16進数のコードから人が読み起こせるようにした形のもので、
人が理解できるように変換した内で最も低級言語。
その歴史は古く、そうだなぁ、知ってる限りPC8001やMZ80-BどころかTK-80が出てたころから有ったなぁ。それ以前は知らない。
Cより痒いところに手が届く、って言うか何でもありの言語で、その分非常にセンスが必要。
俺はAppleUやファミコンで使ってる6502のCPUで作ってたけど、センスがないからへなちょこゲームしか作れなかった。
アセンブラの知識を持ってる人には機械語の知識を持ってる人が少なからずいて、そう言う人達が作ったプログラムを逆アセンブラ(機械語からアセンブラにコンバートするやつ)に掛けると、
分岐の飛び先が一つの命令の隙間に飛び込んで違う意味を持ったりするような、ちょっと他の言語では説明も難しいようなのがあったりする。
最近は手を付けてないからARMとかのはよく知らない。 アセンブラは痒いところに手が届くんだけど、ほとんどの場合
手にバイキンが付いていてとんでもない感染症を引き起こす
イメージが有るw >>453
まあ、ポインタ使えないと"Hello world\n"すら意味わかんねって欠点は
あるけど、Cの基本理解しちゃえばC#のイベントだのRubyのyield(だっ
け?)だのも「ああ、あれを『易しく』してくれてるんだ」と思えるんじゃない
かな。
ベースとして理解してると、「ああ、あれを簡単にしてくれてるのね」となりやすい。
一番ありがたいのがstring型っつうw 初心者がお勧めする言語講座か。
これは役に立つな。 アセンブラになれば関数を作るにしても引数をどうするかなどいろいろ考えないと行けない訳で
それがCになると基本的には自動的にスタックに引数を積む事になるけど
アセンブラでは簡単にするならレジスタ渡しになるわけだが
昔はそのレジスタもあまり数が無く退避させるために
サブルーチンを呼ぶ前にスタックにプッシュして
戻ってきてからポップして復元するなど色々あったな
サブルーチン側でレジスタをもとの状態に保証する為に退避なんてこともあった >>463
それもまたハードによって仕様が違ってたりするんだよね。
例えば、Z80系や8086系はプッシュ、ポップって言うけど6502系はプッシュ、プルって言ったり、
関数、当時はサブルーチンって呼び方だったっけ。
これもものによって引数を持たせることが出来たり出来なかったり。
6502系だと持たせることが出来ないので、00h番地からFFh番地のメモリをそれ用に使って引き渡すのが基本で、
プッシュやプルはサブルーチンの飛び先管理の他にスタックポインタの操作が挟まる分遅くなるから余り使わないかな。
で、またものによってアキュムレータレジスタがあったりなかったりするので、アセンブラ使ってる人達の間でもその話が出ると「?」ってなったり。
さっきちょい初心者アセンブラスレ覗いたらマッピングどうのって話があって、何言ってるのかよく分からなかったけど、
どうやら上で書いた番地の話をしていたみたい。けど、そういうのをマッピングなんて言い方したのは聞いたこともなかった。
一括りにアセンブラと呼んでも、使ってるものによって話が通じなくなるのが悲しいところだね。 今のインテルとかライゼンの最新CPUでもアセンブラでプログラム書く人っているの? >>465
どーだろうねぇ
正直、今アセンブラ主体で使ってるシステムってまず見ないんだよね。
昔はゲームとかパチンコとか飛行機の制御とか有ったけど、今はそれらももう他の言語使ってるしね。
ただ、世の中には危篤な人もいるから絶対使われてないとは言えないかな。 >>459 昔々4004とか8008なんてCPUがあった時代に、いろんなものを作ってた。
この頃一番売れたのはインベーダーゲーム。 ヤーさんがリュック一杯に現金を詰めて買いに来てた。
CPU が不足して購買担当社員もリュックを担いで世界中に部品を探しまくってた。
アセンブラだから当然効率が悪い。 プロジェクトが始まると、演算や文字操作などの基本的なツールをマクロで書いてマクロルールをみんなに渡してから開発をスタートさせてた。
こういう手法は今のコンパイラにも受け継がれている。
Cが出て来て、ROMも安くなりつつあった時期にはCの効率を自分で調べてはバイト数がアセンブラの3倍以下には収まるので基本的には社内でアセンブラは禁止にした。 >>467
時代の流れを感じるねぇ。
ゲームっていっても業務用とコンシューマ用ではまた少し違うからねぇ。
コンシューマでCが活用されたのはプレイステーションになってから。
ファミコン、スーパーファミコンのときは機能制限も激しかったから
インベーダーひとつ作るのも苦労したんじゃないかな。
そう言えば昔、源平倒魔伝ってゲームのPCエンジン版作った人が嘆いてたよ。
仕様も何もなく業務用機一台渡されてこれで作れって言われたって。
まぁ、そういう時代だったんだねぇ。
「オタクが作ってヤクザが売る」って言うのは名言だったと思うよ。 CASLアセンブラで情一取ったけど、「これって、絶対現場では
使えないよな」と思った。
Cが新鮮な言語だった90年代だけど、それでもこいつはあかんと
思った。 CASL 2 より、何十年も経ってから、
LLVM が作られて、世界標準になっているのが現実w CASLは、CやJavaが苦手な低能たちの抜け道となっているから そりゃそうだよ
CASLはそもそも基本情報(情報処理)の試験の為だけに作られた仮想アセンブラであって公正にする為に実際に使われているアセンブラから
共通と言える部分の概念だけ取り出して作られたものだから現場で使えるような代物じゃないもの。
試験でCやJAVAの苦手な低能の逃げ場になっていると言うのもあながち嘘とは言えなくて、前誰かこのスレで言ってたけど
昔のアセンブラは覚えることが少なくて、その分ロジックは自分で考えて組め、と、そういうものに対してそのロジックの部分を除外して
試験に出してるんだからそりゃ簡単で後々の知識としては糞の役にも立たないよ。
まぁそういう意味ではCASLやった人には「ご苦労様」としか言えないし、逆に言うと「試験、簡単に通って良かったね」と言えるかな。 最小限の努力で受かったのだから、効率的なんじゃね? >>469
ところがどっこい、ルネサス のマイコンのアセンブラに結構近いんだな。
日本車のマイコンはほぼルネサス らしいし、業界の求める人材育成って面はあるんだなぁ。。。と感じた。 え?
DATAがある以外の類似点が思いつかないくらい似ても似つかない別物だと思うんだけど。 本来Z80の流れを組んでるっぽいし、レジスタ名をそのまま使えばAとかBとかなんだけど、別名でR0とかR1とかでも使えるんよ。
そうなるとレジスタのGR0をR0って読み替えれてれば、ジャンプ命令とか以外は割と似てる印象だった。 レジスタがあるところとかが似てるんですね。わかります。 レジスタはどっちかと言うと、最後のとどめ的な。
元々CASL2もZ80をパクってるけど、まんまじゃダメだからレジスタをGR0とかに変えようみたいな印象だったが、
これまたZ80の流れを組むルネサス のマイコンも別名でR0とかにできると言う奇跡の一致。
今時Z80どころかCISC自体が少数派だろって言う。 >元々CASL2もZ80をパクってるけど、
これ以上笑い話は結構です。お腹いっぱい。
結局あなたにとってアセンブラは全部似てるってことですね。 数字のほかにaとかbとか出てくるところも似てる。こりゃ確実にz80パクったな。 >>479
アセンブラが全部似てるってのは言い得て妙だね。
特殊レジスタでどんなステータスを管理するかとか、スタックがソフトウェアかハードかとか細かい違いは有るけど動作原理は同じだしね。
LDとかSTとかの書き方は老害の影が見え隠れするレベルでZ80だと思うんだけどなぁ。。。
まあ、個人の感想だから思わないなら思わないで良いけど。 アセンブラの話でまさかみんなこんなに食いつきがいいとは思わなかったよ。どういうこと? ネットで見てわかる範囲だからでしょ
実際のプログラミングの話題だと付いていけないのはわかる >>481
> LDとかSTとかの書き方は老害の影が見え隠れするレベルでZ80だと思うんだけどなぁ。。。
Z80にSTなんてないけど… 昔のCPUと同じようなもんだと思っているのは大間違い。 MSDOS?の頃は、Cのコンパイラをアセンブラで止めて手直しするって奴もいるって聞いたことがある。 >>474 今やルネサスのマイコンもARMが多くなりつつあるだろ。 今はARMが世界標準だからな。
ユーザーからアームにしてくれと言う突き上げが多く従わざるを得なくなったのが現実。
しかし、このスレの本題であるところの始める言語としてアセンブラを勧めるのはどうかと思うよ。 そんなの片手間に暇な時に眺めりゃ良い話。 >>489
その通りなんだけどさー
多分ここ、
10 CONSOLE 0,25,0,1
20 SCREEN(0,0)
30 WIDTH 80,25
とか書いて理解出来ない人がいないくらい
酷いことになってる気がするよー これからはE言語だと言ってたのは、片山さんじゃなかったっけ。 >>491
あれ?本当だ。
俺ももうじじいだから少しもうろくしたみたい。
でも指摘が入るくらいここにいるみんなはじじいってことでしょ?
今の初心者の人なんて本当に来てるのかなー? 最初の頃は少しいたかもしれないけど、全く参考にならないことがわかって出ていったと思うぞw このスレ、始めはどうなることかと思っていたがいつの間にか名スレになったな
割と広いテーマの雑談スレが他になかったからかな
一人一人が熱い思いを持ってエンジニアリングをしていることが分かって良かった Linuxガイジとアセンブラガイジがひたすら演説してるだけじゃんw >>498
Linuxおじさんはたまに他のスレで見かけるけど
何か書いてもみんなにスルーされるから
ここが心のオアシスだったのかも知れないね >>496
×名スレになった
◯ボクが言いたいことを言えてスッキリできた linux使えないでプログラミングだけ知っても役にたたないからな >>501 おいおい、プログラミング言語とOSを一緒くたにするのはやめろよ。
プログラミング言語はOS、ハードウエアに縛られずに汎用化された言語。
方や、アセンブラは専用ハードウェアに縛られた言語(簡単だから他のハードでもすぐに理解はできるが)
OSのコントロールに使われるスクリプト言語は、あくまでも補助言語であり、初心者が覚える必要もない。
初心者が覚えるのは、汎用的な言語だけにとどめるべき。
覚える過程で色々周辺知識が増えていく。 言語の習得での一番の山は環境の構築。
今から始めるならその辺が簡単な言語がいい。 だからWindowsでもMacでもLinuxでも
なにもインストールせずにもう既に環境整ってるでしょ。
Model:HTML
View:CSS
Controller:JavaScript
始めからデフォルトでMVCプログラミング出来るってのに >>505
https://ja.m.wikipedia.org/wiki/Model_View_Controller
view: グラフや図などの任意の情報表現
CSS: visibilityプロパティは、ボックスの表示(visible)・非表示(hidden)を指定する際に使用します。 HTMLを利用したクライアントサイドのMVCならこうなる
View: HTML ( + CSS )
Controller: JavaScript (イベントハンドラ等)
Model: JavaScript (モデルオブジェクト等)
HTMLはあくまでModelの一つの表現であってこれがView
CSSは繰り返し使うような見た目に関わる設定値を一部切り出して保持してるだけで
ViewではなくView専用の設定値ファイル すべてのweb 系の言語は、Linux を対象にしている
だから、Linux おじさんが現れるw Javascript は、初めて番協する言語には不適格。
言語の構造など基本的なことが疎かになる。
情シス言語の中から選ぶべき。
C Java Python (アセンブラはお勧めしない)
(それと表言語用のVBも有るがお勧めしない) >>510
Javaって一応お勧めなんだ。
やっぱり参考書や資料が他の言語より豊富に揃ってるから? >>512
今時Javaはないわー
C#の方が100倍マシ >>484
あれ?と思って調べたら・・・無かったw
記憶違いメンゴ。
しかしMOV主流の中で貴重なLDニーモニック。
この辺はアーキテクチャと言うよりアセンブラを書いたメーカーのさじ加減ではあるが。
>>489
ハード弄らなければ意味は無いので、そこまで推してる訳でも無いけどね。
ルネサス もmicrochipも取り敢えずARMマイコン出してみましたって印象だけど、増えてるん?
アーキテクチャより組み込まれる周辺回路が用途にあってるかの方が重要な気がするけど。
国内企業だからルネサス 応援したいけど、電子工作向けマイコンが無い・・・。
(秋月さんが頑張って電子工作向けに改造したのが有るだけ)
子供向けも全部入りのお仕着せ基板・・・。
そう言う大人が買い与えないと買えないものじゃなくてだな・・・。
お小遣いでコツコツ部品買ったり、自分で自由に回路組める様に基礎から教える教材用意したりをだな・・・。
技術の継承とか考えないのか? >>509
Web系と言うか、MS謹製以外の言語はほとんど出自がLinuxだったりMacだったり、何らかのUnixもしくはそのクローンだったりではあるな。 >>516
はたしてそうかな...
FORTRAN, LISP, COBOL, PL/1, Pascal
てか最近の言語は*Unix, Linux, Windowsで開発してるからそう思ってるだけでしょ 子供向けならScratchでいいじゃん
ここはハード板じゃないから別にハードのこと考えなくていいし 何にも考えずCやれ、そしてC++。
それらをマスターしたら好きな言語をやれ。 >>517
ライセンスの問題もあるだろうし、無理に変えてまで独自のニーモニックにする必要が無いだけで、原理的には機械語と対応してて人間に意味が通じれば良い訳で。
と言うか、それこそザイログ社の裁量でLDになった訳でしょ。
それを他のアセンブラに強要するかしないかだけで。
32ビットモードかどうかみたいなのを決めるアセンブラ命令の方は割とアセンブラ毎に違ってる。
CASLのDC,DS命令相当の変数確保命令とか、同じx86でもアセンブラ毎に全然違ったり。
ADDはADDとしか書きようがないとしても、MOVかLDかとかは例えば自分でアセンブラ作るとかだったらライセンスはともかく理屈の上では選べるわけよな。
出先だから適当だけど、8ビットのうち3ビットあれば8個のレジスタを表現出来る訳で、命令5ビットレジスタ3ビット、次の8ビットでアドレスみたいな。
(CISCだと全部をひっくるめて24ビットとか固定でその中の8ビットがアドレスでみたいな)
そのパターンにADD A,Addrみたいな文字を割り当ててるだけなんだから。 >>519
スレ主に勧めるのもそれで良いかもしれんな。
プログラミングの難しさって文法の簡単・難しいより、それらを使って何作るの?って言うのが出来ないのが圧倒的な訳で。
そこさえクリアすればアセンブラだろうがC++だろうが問題無いもの。 >>521
何を主張したいのかよくわからんけど
・Z80 の LD は ZILOG が決めた
って言うのは理解できたかな?
GNU assembler みたいにプロセッサーメーカーとは違うニーモニック使うアセンブラもあるし、新しい命令に対応するためマクロアセンブラで定義したりするのは普通にやってただろ >>523
うん、理解出来た。
その時代を生きてきた人間じゃ無いから勉強になったよ。
やっぱ古本だけじゃ知らん事多いなぁ・・・。 ここおもしれーな
初心者にアセンブラとかCとか正気の沙汰じゃねえ
・・・C++から始めてみろ >>527
☓ プロならJavaかCobolの二択だからな。
〇 土方志望ならJavaかCobolの二択だからな。 まあザッカーバーグはphpがスタートだからな。それ考えるとなんでもいいんじゃね?っておもうわ。 >>525
いやぁCから始めるのが狂気の沙汰じゃなければ
C++はもーって感じでしょ。
ま、狙って言ってるんだろうけどw
せっかくだからC++推しで何か書いてってよ
俺はC++そんなに好きじゃないから
何か書いてもそっちの方が出てきてダメだと思うんだ。 C/C++を勧めてるやつって具体的にどのC/C++コンパイラを使ってんの?
WindowsのC/C++コンパイラってどれも上級者向けだと思うんだが。
しかもGUIアプリなんて初心者がまともに作れるとは思えない。
頑張ればなんとかなるのかもしれんが、それなら最初からC#をやったほうがいい。 >>534
結局行きつく先はそこになるよね。
Visual Studio +.Net.Core。
まぁ、最初からそれでC#やっときゃいいじゃんってのは正解だと思うよ。
ただ当たり前過ぎてあまり面白みのない解答になっちゃうし、
正解はひとつとは限らない。 >>536
そう?走るとき速けりゃそれでいいと思うけど。
別に使うユーザーさんとかはコンパイル時間関係ないし。
極論、それだったらマシン語で組めばいいんだよ。コンパイル時間短いどころか無い。 ■ このスレッドは過去ログ倉庫に格納されています