情報技術の四方山話

AI、IoT、ヤマハルータ、VPN、無線LAN、Linux、クラウド、仮想サーバと情報セキュリティのよもやま話

Pythonに型定義を追加し、処理を高速化するCodonコンパイラが公開へ

2023-03-26 16:53:42 | python
Pythonはインタプリタ言語として広く使われている。Pythonの処理の高速化には、いくつかの取り組みがある。このたび公開となったcodonはC/C++並の速度を目指す、型宣言付きPythonのコンパイラだ

codonはPyhtonのスーパーセットとして、Pythonに型宣言を導入し、かつコンパイルして、そのバイナリを実行する。そのため、C/C++並の実行速度を実現できる


codonの普及を進める会社としてexaloopが設立されている


私は、仕事としてのプログラムを「C言語」で始めた。全くの初心者として、プログラム開発に取り組み始めた当時は、ANSI C登場前だ。C言語は型宣言が必須だが、最初はコンパイラで型チェックを行うことができることを知らなかった

数年経ち、ANSI Cを知った後は、GUN Cコンパイラのオプションで、コンパイル時に強力に型のチェックを行うようにした。機械的にErrorやWarningを検出することで、思い込みや、記述の間違いが大きく減り、プログラムの生産性は大きく向上した

WebUI開発言語として知られるJavaScriptの世界でも、曖昧な型表現を厳格化したTypeScriptが登場した。TypeScriptはJavaScriptのスーパーセットで「明確な型」を持ち込むことで「人の誤読を無くす」ことを実現し、多くの人が分業する規模の開発に対応している

プログラムの現場では、明示的な型の指定は「指定の手間」よりも、可読性の向上と、デバグが簡単になることの利便性の方が大きい。そもそも、プログラムを記述する側は「どの型で使うか」は意識しているので、型の指定は「ほんの一手間」だ

いつもアクセスありがとうございます。Pythonの処理の高速化を実現するcodonの情報を共有します。これは良いですね。次回は環境の構築を紹介します
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

pythonでWebApplicationを作ってみる-flaskと開発環境

2021-05-31 12:28:55 | python
python(python3)にはWebApplicationを作るフレームワークがあり、代表的なものは以下の2つです。

- Flask
- Django

どちらも、開発用のHTTPサーバ機能が備わっているので、開発のために整える環境がコンパクトなことが大きな特徴です。

これからFlaskを使って、小さなWebアプリケーションを試作してみます。
Flaskを使うには以下の環境が必要です。

- エディタ
- Python3の動くターミナル
- Python3/pipインストーラ
- Flask(pip install flask)

私は以下のLinux環境を使っています。特段の準備は無くてもOSと同梱のツールで始められます。Windowsの場合も、Python3をインストールし、Visual Studio CodeとそのPyhon拡張モジュールをインストールすれば、flaskでの開発ができます。もちろんWSL(Windows Subsystem for Linux)でも動かすことができます。

- Python3 = Linux/Ubuntu 20.04 LTS同梱
- エディタ = Linux/nano = Linux/Ubuntu 20.04 LTS同梱
- Python3の動くターミナル = Linux/bash = Linux/Ubuntu 20.04 LTS同梱
- Python3/pipインストーラ = ( $ sudo apt install python3-pip )
- Flask($ pip install flask)

■まずはHello, World!


Flaskはプロトタイプ用です。起動の際に以下のメッセージがでます。

$ flask run
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [31/May/2021 07:18:56] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [31/May/2021 07:18:56] "GET /favicon.ico HTTP/1.1" 404 -

ただ、最初のページの表示までが、とても簡単です。以下のコードで"Hello, World"できます。

# save this code as app.py
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, World!"

実行も驚くほど簡単。

$ flask run
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

いつもアクセスありがとうございます。Pythonを使ったWebAPI開発のポイントを共有します。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Linuxでインストール済みのPythonを簡単に調べる

2020-05-18 13:24:34 | python
今日の話題は「Linuxでインストール済みのPythonを簡単に調べる」です。
PythonはデフォルトでLinuxにインストールされますがそのバージョンを簡単に知る方法が" which python{,2,3}"です。

■Python3がインストールされている
$ which python{,2,3}
/usr/bin/python3

■Python2をインストールする
$ sudo apt install -y python2

■インストール済みのPythonのバージョンを確認する
$ which python{,2,3}
/usr/bin/python2
/usr/bin/python3

■それぞれの詳細なバージョンを知る
$ python2 -V
Python 2.7.18rc1
$ python3 -V
Python 3.8.2

■Windows上のUbuntu 20.04 LTSで実行しました
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「Ubuntu 20.04 LTSではPython2は追加インストールに

2020-05-17 22:45:07 | python
今日は「Ubuntu 20.04 LTSではPython2は追加インストールに」です。
プログラム言語Pythonは、Python2からPython3への移行が進んでいます。一方、Python2のソフト資産が莫大にあります。実行環境を残すと移行が進まないことも確かです。

まさに「今日現在で使いたいソフトがPython2で作られていた」ので、python2とpip2をUbuntu 20.04 LTSにインストールしました。

私も、Python2で書いたコードの一部をPython3に書き直しており、新しいプログラムはPython3で書きます。

AI、IoT、通信分野のプログラムなのでPythonが適している分野でもあり、たくさんある様々な機能モジュールとコードを利用しています。Python2のメンテナンスが完全に停止されるとは言え、「Python2の実行環境」は当面残りますね。

Python2の実行環境維持についても、試したことをメモしていきます。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする