私は、複数の言語(プログラミング言語のことです)を使うことができます。
I can use more than one language (i.e., programming languages).
とくに、C言語とGO言語については、かなり使い込んでいまして ―― 現在も、私は、会社の中で『呪文言語を扱う魔術師』という立ち位置で、使い倒されています。
In particular, I have used the C and GO languages to a great extent - even now, I am used to the position of ‘spell-casting language wizard’ in the company.
C言語とGO言語は、設計思想が似ていて、GO言語はC言語の進化形とも言われることがあります(私は、違うと思っているのですが)。
The C and GO languages have a similar design philosophy, and the GO language is sometimes said to be an evolution of the C language (although I think it is not).
で、当然、この2つを融合させて使おうという発想が出てくるわけです。
So, naturally, the idea is to use a fusion of the two.
これが、"cgo" ―― GoからCの関数/型にアクセスするために用いるパッケージであり、簡単に言えば、『Cで書かれたライブラリを、Goでも再利用できる』ようにするものです。
This is ‘cgo’ - a package used to access C functions/types from Go, which, simply put, allows ‘libraries written in C to be reused in Go’.
-----
私、何年か前に、このcgoを試みて、失敗しております。
Some years ago, I tried and failed to do this 'cgo'.
まあ、趣味でやっていたものなので、失敗しても気にしていませんでした。
It was my hobby, and I didn't mind if it failed.
-----
ところが、これが、"業務"となると、全く話が違ってきます。
However, when it comes to ‘business,’ the story is entirely different.
『動かさなければ、何もしなかったことになる』 ―― これが、ソフトウェア開発の怖いところです。
‘If you don't move it, you haven't done anything’ - this is the scary part of software development.
そもそも、参考文献が少ないし、下手すると『全くない』てなこともあります。
There are few references, and in some cases, ‘none at all.’
仕事としてプログラミングをやる人にとって、出版されている本は、役に立たないことが多いです。
For those who do programming as a job, published books are often not helpful.
本の内容が『そんなことは知っとるわ!』となってしまうことは、仕方がないことです。
When reading the book, ‘I already knew it’ is inevitable.
-----
ただ ―― 動かないプログラム、動かないシステムというのは、本当に怖いです。
However, a program that doesn't work, a system that doesn't work, is horrifying.
一週間、一日18時間、パソコンと格闘していたとしても、プログラムが動かなければ、『あんた、この一週間、何やってたの?』と言わるかもしれない、という恐怖が常に付きまといます。
There is always the fear that if you work on a computer 18 hours a day for a week and the program doesn't work, you might be asked, ‘What have you been doing all week?’
特許明細書や報告書は、内容はどうあれ、書けば増えますし、いつかは終わります。もちろん、これらの業務がラクであると言う気はありませんが。
Patent specifications and reports, whatever their content, will increase as they are written and will be finished at some point. Of course, I don't mean to suggest that these tasks are easy.
しかし、成果が"0"か"1"でしか評価できないプログラム ―― しかも、それが、自分だけの努力では、なんともならないもの(例:ハードウェアやミドルウェアとの相性)である場合は、もうどうしようもありません。
However, if the results of a program can only be evaluated on a scale of ‘0’ or ‘1’ - and this cannot be managed by your efforts alone (e.g., compatibility with hardware or middleware), there is nothing more you can do.
-----
ChatGPTは、かなりがんばってくれています。
ChatGPT has done a lot of work.
私が、
When I said,
『そのやり方、今日、3回目の同じ説明だけど』
‘That's the third time today I've had to explain the same thing that way.’
と嫌味を言うと、きちんと謝罪して見せた後で、4回目の説明を始めてしまいます。
When I am sarcastic in this way, ChatGPT apologizes and adequately starts explaining for the fourth time.
仕方ないですよね。
It can't be helped.
ChatGPTだって『なんでもは知らないわよ。知っていることだけ』と言いたいことでしょう。
Even ChatGPT would have said, ‘I don't know everything. Only what I know.
ChatGPTが知らないことは、それはもう膨大にあります。
There is a considerable amount that ChatGPT does not know.
そして、世の中に新しいものが登場するたび、ChatGPTも、ゼロから勉強しなければならないです。
And every time something new appears, ChatGPT must also learn from scratch.
-----
ともあれ、先程、人生最初のcgoのプログラムが動いて、今、私は安堵の溜息をついています。
Anyway, I just got the first 'cgo' program working, and I sigh with relief.
不安の溜息と安堵の溜息 ―― ソフトウェアエンジニアは、いつだって溜息をついています。
Sighs of anxiety and sighs of relief -- Software engineers are always sighing.