産休・育休について①~産休前のお話インタビュー~

2020年中途入社で、2021年7月より産休・育休に入り、2022年5月に復職した髙橋さんに、産休・育休についてのインタビューを行いました。

第1弾は産休前について、振り返ってもらいます。

会社への報告

中途入社の研修期間を終えたばかり。不安と緊張の報告。

妊娠しているとわかった時、どんな気持ちだったのかな?

年末のお休み中に妊娠を自覚しましたが、子供を授かったことに対して嬉しい反面、入社して間もなかったので、会社を辞めなければいけないのでは・・と不安もあり、複雑な思いで年末年始を過ごしてました。

それは大変だったね。
たしかに年明け初日に、大事な話があると言われた時は、こちらも身構えてしまったけど、妊娠で本当に良かった。

そうですね。すぐに言わなきゃと思って、社長をはじめ、同じ部署の方には一人ずつリモート画面越しで報告しました。
報告するまでは不安な気持ちでいっぱいでしたが、皆さんあたたかい言葉を掛けてくれたので、嬉しくて涙が止まりませんでした。

すごく言いづらそうな雰囲気だったから、辞めたいと言うのかと思っていた。

逆です。ずっとこの会社で働きたいという思いが強かったです。
報告した日は嬉しい思い出になりました。

妊婦さんの働き方

働く妊婦さんを取り巻く仕事環境

公園で会話する二人

安定期に入るまで、急な体調不良はどうしてたの?

ちょうどコロナウイルス感染拡大時期と重なっていましたが、リモートワークのおかげで、自宅から出ることは無く、体調が悪くても大変ではなかったです。
休憩中も自宅なので横になることができ、とても助かりました。

たしかに会社だと横になることは出来ないよね。
他にリモートワークで良かったことは?

一番は通勤が無かったことです。
つわりによる吐き気や頭痛など、妊娠中の通勤は大変だと聞いていました。
 通勤しているママ友達が多かったので、そう考えると私の仕事環境はとても恵まれていたと思います。
妊娠前も妊娠後の仕事も変わらずに、フルタイムで働けることも良かったです。

他の会社はリモートワーク導入が遅れていたから妊婦さんは大変だろうね。

そうですね。
あと、妊婦さんがコロナに罹る前例が無かったので、その不安もなく安心して働くことができて良かったです。

うれしかったこと

産休前の仕事中で一番うれしかったこと

笑顔

働いている中でうれしかったことは?

社内で「体調大丈夫?」と声を掛けてくださる方が多かったことです。
同じ部署以外の方も、気に掛けてくれていてうれしかったです。
妊婦に優しい会社だと感じました。

たしかに子供をもつファミリー社員が多いから、心配して気に掛けてくれるのかもしれないね。

理解のある会社でうれしいです。
女性社員も増えてきたので、このまま妊娠しても安心して働ける仕事環境を継続して欲しいですね。

そうだね。妊婦さんも働きやすい会社にしていきたいね。

長くなってきたので、今回のインタビューはここまで。
次回は産休・育休中のインタビューです。

お楽しみにしてください!

編集後記

コロナ感染拡大中でも、多くの妊婦さんが通勤していたことを改めて知りました。
安定期に入るまでの通勤は、本人はもちろん、家族の皆さんも心配だと思います。
妊婦さんも安心して働ける環境の会社にしたいですね。

【プレスリリース】らくらく在庫が越境ECモールZenPlusと連携しました。

グリニッジ株式会社(本社:東京都港区、代表取締役:田中裕之、以下:グリニッジ)の提供するEC在庫管理システム『らくらく在庫』とゼンマーケット株式会社(本社:大阪府大阪市、以下:ゼンマーケット)が運営する越境ECモール「ZenPlus」が連携しました。

■連携の背景

越境ECモール「ZenPlus」は、海外発送に必須である煩雑な手続きを出店者に代わりに行うなど様々なサポートを提供しているため、出店者は国内取引のような感覚で世界に商品を販売することが可能になります。

しかし、売上増加につながる一方、在庫管理における作業が煩雑になりEC事業者を悩ませていました。

この度『らくらく在庫』と『ZenPlus』 がAPI連携することにより作業負担を軽減し、利益を最大化することが可能になります。

■API連携概要

らくらく在庫とのAPI連動によりZenPlusの受注情報を自動で取り込みできるようになり、また、他の連動モールで注文が入るとZenPlusの在庫数も自動で更新されます。

これにより、国内ECモールの運営と越境EC運営も行いやすく、在庫管理にかかる作業コストを大幅に削減できます。

■ZenPlus連携スタートキャンペーン 

『らくらく在庫』と『ZenPlus』連携リリースにあたり、通常30日間無料トライアルのところ、今だけ60日間無料で行います。

ぜひ、この機会にらくらく在庫をお試しください。

らくらく在庫無料トライアル申込ページ:https://zaiko.greenwich.co.jp/flow/trial

※キャンペーン期間:2022年12月31日まで 『ZenPlus』を含めたお申込みが対象です。

■ ZenPlus 手数料キャッシュバックキャンペーン【ZenPlusに関するお問合せ・出店ご検討の方はこちら】 

『らくらく在庫』と連携し た『 ZenPlus 』新規出店者を対象に ZenPlus 手数料キャッシュバックのキャンペーンを行います。 

※キャッシュパック対象期間:~2022年12月31日の受注分 
下記出店登録ページより登録を行った方に限ります。 
※手数料は商品代金/送料より各10% 
※キャッシュバックのお振込みは受注日より最大1ヵ月後となる場合があります。

ZenPlus出店登録ページ:https://seller.zenplus.jp/signup?aId=D6015CED
お問い合わせURL:https://zenplus.jp/ja/contact

【会社概要】

▽グリニッジ株式会社

代表者:代表取締役社長 田中裕之

所在地:〒105-0004 東京都港区新橋一丁目16-4りそな新橋ビル 8F

設立:平成15年5月26日

事業内容:EC・Webソリューション(コンサルティング・制作・システム開発・運用)

らくらく在庫URL:https://zaiko.greenwich.co.jp/

ホームページURL:https://www.greenwich.co.jp

▽ゼンマーケット株式会社

代表者:ナウモヴ ・アンドリイ、オレクサンドル・コーピル 、スロヴェイ・ヴィヤチェスラヴ ソン・マルガリータ

所在地:〒541-0048 大阪府大阪市中央区瓦町1丁目7-7 大阪堺筋Lタワー10階

設立:平成26年4月

事業内容:越境EC事業・海外向け物流事業・海外向けプロモーション事業

Zenplus URL: https://zenmarket.jp/ja/marketplace.aspx 

ホームページURL:https://zen.group/

【本件に関するお問い合わせ先】

■グリニッジ株式会社

インサイドセールス:塚部一貴(つかべかずき)<support@greenwich.co.jp>

〒105-0004 東京都港区新橋一丁目16-4 りそな新橋ビル 8F

(TEL) 03-5510-7260 / (FAX) 03-5510-7296

(URL) https://www.greenwich.co.jp/

中途入社の古屋です。

皆さま、初めまして。
10月から中途で入社させていただきました。古屋と申します。

私はこれまで農業協同組合から機械のフィールドエンジニア、ソフトウェアの開発エンジニアと業界を渡り歩いてきました。
前職のソフトウェア開発ではECサイトの構築、改修に1年ほど携わらせていただいたということもあり、今回ご縁があり入社させていただく運びとなりました。
まだまだエンジニアとしての歴は浅いので、一日でも早く皆様のお役に立てるよう日々精進して参ります。

個人的なお話になりますが
今年31歳を迎えまして、30歳を過ぎてからお腹周りにお肉が付き始めました。
もともと食べる量は多い方だったのですがそれまではいくら食べても太ることはなく、「私はいくら食べても太らない人間なんだ」と思っていました。
ええ…もちろん30を迎えてもそう思っておりました。
いつからでしょう…
夜眠れない時にはペヤング焼きそばの超大盛を掻き込んで満腹中枢を刺激し直後眠くなったタイミングで朝までぐっすりという習慣ができあがってしまったんですね。

そんな習慣が続きまして、2ヶ月ほど経った時に気づいてしまったんです。
んー?なんか筋トレしてないのに胸筋付いてきた?

はい、その程度の認識だったわけです。
この習慣は続きました。食事も炭水化物がメインです。
そしてさらに1ヶ月が経った頃、久しぶりに会った友人に言われたんですね。

「太った?」

乗りましたね、体重計に
衝撃でしたね、かなり

なんとこの3ヶ月間で10kg増えておりました。

でもですよ
この10kg増えた体重が私の身長では平均体重とされているのです。
痩せ型で割とガリガリ寄りな体型が見事平均に乗ったわけです。

まいっかってなりそうじゃないですか?
実際なったんですよね、まいっかって。2秒くらい。

でも鏡を見ると腹回りは見事に出ており、胸も胸筋ではなく脂肪だったんです。ぶるんぶるんしてたんです。
すぐに運動を始めました。

今も続けてはいるのですがあまり効果が見えてきません。
運動のほかにも食事にも少し気を使い始めました。

以下痩せるためにやっていることです。
・平日の夕飯は白飯抜き
・月曜~木曜はウォーキング(3 ~ 4kmほど)
・金曜・日曜は水泳(平均2500mほど)
・基本的に飲み物は水とコーヒー(無糖)

ですが、あまり効果が目に見えないです。
ただこれ以上やるとしたら毎日夕飯の白飯を抜くことくらいです。
それはちょっとキツいので
この方法でもうしばらく様子を見てみようと思っております。

続報をお待ちください。

個人的なお話を失礼いたしました。
今回は以上でご挨拶とさせていただきます。

これからどうぞよろしくお願いいたします。

EC-CUBE4.2リリースパーティに参加しました!

こんにちは! グリニッジの古関です。

先月9月21日に開催されました、EC-CUBE4.2リリースパーティに参加させていただきました。

とてもすてきなパーティーだったので、当日の雰囲気や内容について共有させていただきます!

最新版EC-CUBE4.2のリリースパーティーとは

EC-CUBEはコミュニティの協力のもと開発してまいりましたが、EC-CUBE4.2では更にクオリティ・セキュリティ向上を掲げ「バグバウンティ」を実施し、サイコウのEC-CUBEとしてリリースできるものと期待しております。本「EC-CUBE4.2リリースパーティ」はそんなコミュニティの力を結集したEC-CUBE4.2のリリースを皆で祝い、ご協力いただいたエンジニア、協賛企業と一緒に労をねぎらい、そしてこれからEC-CUBEを共創する仲間として交流を深める会として実施いたします。

https://eccube42-releaseparty.peatix.com/

当日のスケジュール

  • EC-CUBEからの発表
  • バグバウンティ表彰式
  • ネットワーキング・歓談

会場

会場は東京恵比寿にある、ウェスティンホテル東京でした。


とても豪華なホテルで、今回の最新版EC-CUBE4.2のリリース記念と、バグバウンティ参加者への思いを感じました。

受付でいただいたウェルカムドリンクを片手に、開始まで少し談笑です。

EC-CUBEからの発表

パーティーが始まり、最初に株式会社EC-CUBE代表取締役社長 金 陽信様から
EC-CUBEのこれまでやコロナ禍で生まれたEC業界の課題、今後の挑戦についてお話頂きました。

EC-CUBE4.2バグバウンティ表彰式

最新版EC-CUBE4.2のリリースパーティーとは

各種アプリや Web システム等の「バグ(脆弱性、セキュリティホール含む)」に賞金をかけ、

見つけれてくれた人(バグハンター)に対しその重要度に応じてお金を支払う仕組みです。

https://www.ec-cube.net/events/release4.2/bugbounty2022.php

1位の方は、賞金42万円

このバグバウンティイベントには、50名以上の方が参加されたようです。
「不具合報告」「不具合修正」「脆弱性報告」を行うことで、ポイントが獲得でき
その合計が1番高かった方には、"EC-CUBE4.2"にちなんで、賞金42万が贈呈されました。

1位の方も、その他入賞された方々、本当におめでとうございます!

ネットワーキング・歓談

2回にわたって、ネットワーキング・歓談の時間が設けられていました。
コロナ禍で対面でお話しできる機会が減った中で、とても貴重な機会でした。

ちなみに、私はこうしたパーティーへの参加が初めてだったので、頼れる先輩方について
勉強させていただき本当に感謝でした!

感じたこと

今回のイベント全体を通じ、EC-CUBE4.2では、利用者様に安心してご使用いただけるよう
セキュリティ対策の強化にとても力を入れられている印象を受けました。

特に、バグバウンティという企画は、製品をよりよくしたいと思う社外の方の協力をえるという、すごい企画だと思います。

弊社もセキュリティ対策に力を入れているので、勉強になるとてもすてきなパーティーでした!

ダイナミックカスタムブロック作成(WordPress)~その2~

前回、投稿IDを入力すると、入力したIDのタイトル、サムネイル、リンクを取得して表示するものを作成しました。
しかし、実際の表示を確認するには、プレビューを開くか、保存をしてページを開かないと確認ができませんでした。

もう少し使いやすくするために、ブロックにプレビュー機能を付けたいと思います。
プレビュー機能を付けることにより、編集画面上でも実際の表示を確認できます。
※ソースは前回のものを使用します。

ServerSideRenderコンポーネント

ServerSideRenderコンポーネントを使用すると、編集画面でrender_callback関数に基づいたレンダリングを確認できます。

ServerSideRender コンポーネントを@wordpress/editor パッケージからインポートします。

ServerSideRenderコンポーネントは、ブロックの名前(識別子)をblockプロパティに指定する必要があります。
これはprops.nameで取得ができます

レンダリングに必要な情報(ここでは、投稿ID)をattributeプロパティに指定します。

src/edit.js

//SeverSideRenderコンポーネントをインポート
import { ServerSideRender } from '@wordpress/editor';

export default function Edit(props) {
	//props経由でプロパティを変数に分割代入
	const {attributes: {postID}, setAttributes, className} = props;
	
	return (
		&lt;div className={className} { ...useBlockProps() }>
			{/* プレビューと分けるため編集部分を div class="editMode" で囲む */}
			&lt;div class="editMode">
				&lt;div>sample dynamic block&lt;/div>
				&lt;TextControl
					label='投稿IDを入力' //ラベルの表記を設定
					type='number' //inputタグのtypeを設定
					value={postID} //保存されている属性(投稿ID)を表示
					//入力された値を属性に登録する
					onChange={ ( newId ) => setAttributes({ postID: parseInt(newId) })}
				/>
			&lt;/div>

			{/* ServerSideRenderコンポーネントを追加 */}
			&lt;div class="previewMode">
				&lt;div>プレビュー&lt;/div>
				&lt;ServerSideRender
					block={props.name} //ブロックの名前(識別子)を設定
					attributes={{
						postID: postID //保存されている属性(投稿ID)を表示
					}}
				/>
			&lt;/div>
		&lt;/div>
	);
}

プレビュー部分が見ずらいので、少し出力するHTMLとCSSを編集します。

sample-dynamic-block.php

本文の冒頭部分を表示するように編集します。

function sample_dynamic_block_render($attr, $content) {
	if($attr['postID'] > 0) {

		    //省略

			//本文の一部を取得
			$postContent = strip_tags($selectPost->post_content);
			$postContent = trim($postContent);
			$excerpt = mb_substr($postContent, 0, 75);

			//出力されるHTMLを編集
			ob_start();
			?>
			&lt;div>
				&lt;a class="postWrap" href="&lt;?php print $link; ?>">
					&lt;img src="&lt;?php print $thumbUrl; ?>">
					&lt;div class="postDetail">
						&lt;div class=postTitle>
							&lt;?php print $title; ?>
						&lt;/div>
						&lt;p class="excerpt">&lt;?php print $excerpt ?>&lt;/p>
					&lt;/div>
				&lt;/a>
			&lt;/div>
			&lt;?php
			$output = ob_get_contents();
			ob_end_clean();

			return $output;
		}
	}
}

src/editor.scss

編集画面のみ適用されるので、実際のページも同じデザインにする場合は、
src/sytle.scss を編集する必要があります。

.wp-block-create-block-sample-dynamic-block {
	border: 1px dotted #f00;

	/* 追加 */
	.previewMode {
		background: #fff;

		.previewTitle {
			color: #000;
		}

		img {
			width: 200px;
		}

		.postWrap  {
			display: flex;
			align-items: center;

			.postDetail {
				padding: 10px;

				.postTitle {
					margin-bottom: 8px;
				}
			}
		}

		a {
			display: inline-block;
		}
	}
}

投稿IDの入力の下にプレビューが表示されました。
※CSSは、実際に表示するデザインになる様に編集してください。

プレビューボタンの追加

プレビュー画面が常に表示されていると編集画面が見づらくなるので、
ツールバーにプレビューボタンを追加して、プレビュー表示と編集画面を切り替えられるようにします。

sample-dynamic-block.php

「attributes」に「isEditMode」(編集画面)を追加します。
現在の画面の状態(編集画面 or プレビュー)を表す属性になります。

function create_block_sample_dynamic_block_block_init() {
	register_block_type( __DIR__ . '/build', array(
		//レンダリング用のコールバック関数を設定
		'render_callback' => 'sample_dynamic_block_render',
		//入力された値(投稿ID)を保存するための属性を追記
		'attributes' => [
			'postID' => [
				'type' => 'number',
				'default' => 0
			],
			//表示画面の状態を管理する属性を追加
			'isEditMode' => [
				'type' => 'boolean',
				'default' => true
			]
		]
	));
}

src/edit.js

ツールバーにプレビューボタンを追加するので、
BlockControls、Button、Toolbar コンポーネントをインポートします。

//BlockControlsコンポーネントをインポート
import { BlockControls } from '@wordpress/block-editor';
//Button、Toolbarコンポーネントを追加
import { Button, Toolbar } from '@wordpress/components';

propsのisEditModeプロパティを変数に代入。

const {attributes: {postID, isEditMode}, setAttributes, className} = props;

ツールバーにプレビューボタンを追加して表示する関数(getBlockControls)を追加します。
ボタンの表示切替は、isEditModeの値により切り替わるようにします。

const getBlockControls = () => {
		return (
			&lt;BlockControls>
				&lt;Toolbar>
					&lt;Button
						label={ isEditMode ? 'Preview' : 'Edit'} //isEditModeの値によって、ラベルを切り替える
						icon={ isEditMode ? 'format-image' : 'edit' } //isEditModeの値によって、アイコンを切替る
						className='read-together-btn'
						onClick={() => {
							//clickされると値が反転
							setAttributes({ isEditMode: !isEditMode })}
						}
					/>
				&lt;/Toolbar>
			&lt;/BlockControls>
		);
	}

出力内容部分もisEditModeの値によって、切り替わるように編集します。

return (
		[
			getBlockControls(),
			&lt;div className={className} { ...useBlockProps() }>

				{/* trueの場合、編集画面を表示 */}
				{ isEditMode &amp;&amp; 
					//プレビューと分けるため編集部分を div class="editMode" で囲む
					&lt;div class="editMode">
						&lt;div>sample dynamic block&lt;/div>
						&lt;TextControl
							label='投稿IDを入力' //ラベルの表記を設定
							type='number' //inputタグのtypeを設定
							value={postID} //保存されている属性(投稿ID)を表示
							//入力された値を属性に登録する
							onChange={ ( newId ) => setAttributes({ postID: parseInt(newId) })}
						/>
					&lt;/div>
				}
				{/* falseの場合、プレビュー画面を表示 */}
				{ !isEditMode &amp;&amp;
					//ServerSideRenderコンポーネントを追加
					&lt;div class="previewMode">
						&lt;div class="previewTitle">プレビュー&lt;/div>
						&lt;ServerSideRender
							block={props.name} //ブロックの名前(識別子)を設定
							attributes={{
								postID: postID //保存されている属性(投稿ID)を表示
							}}
						/>
					&lt;/div>
				}

			&lt;/div>
		]
	);

編集モード

プレビューモード

まとめ

今回、プレビュー機能を追加することで、編集画面上でも実際の表示を確認ができるようになり、
使いやすくなったと思います。

ツールバーへのボタン追加もいろいろと応用できるかと思いますので、
ぜひ、参考にしていただければと思います。

ベトナム帰省

こんにちは、グリニッジのホアンです。
久しぶりにブログを更新しました。 
8月に約3年半ぶりのベトナムへ帰省しました。
今回はベトナム帰省での印象について共有させていただきます。

まずベトナムに入国する時、新型コロナウイルスのPCR検査やワクチン接種証明書などが不要なのでスムーズに入国できて、良かったです。
第一印象はコロナ前のように正常な生活が戻ってきて、町中でマスクをしていない人が多かったです。
ちなみに9月26日にはベトナム国内で感染者1432人が新たに確認されて、死者はいませんでした。

次に驚いたことは物価が上昇していることです。
ベトナムの通貨ドン(ベトナムドン、VNDとも言う)の為替レートは、1円=170ドンとなっています。(2022年9月26日現在)
下記は参考の値段です。
フォー(ベトナムの代表的な食べ物)(1杯)185~433円
ガソリン(1L) 148~155円
タバコ(マルボロ:1箱) 185~247円
卵(1個)19~31円
数年前ベトナムの物価はだいたい日本の物価の1/3だと思いましたが、段々日本に近づいてきました。
もちろん熱帯の国なので、野菜や果物などまだ安い物も沢山あります。

ベトナムの代表的な食べ物、フォー

成長するGrab(グラブ)

一方、生活面で、Grabのサービスに大きな展開がありました。
Grab(グラブ)とは、元々はマレーシアを拠点にサービスを開始し、東南アジア各国に拡大した自動車配車アプリですが、現在ベトナム生活に不可欠のサービスとなってきました。
当初は自動車配車サービスだけでしたが、現在バイク「Grab Bike」や食事の配達「Grab Food」やバイクで荷物を送る(Grab Delivery)など、様々な便利なサービスが出来てきました。
私も数回Grab Deliveryを利用してみましたが、距離はだいたい5kmぐらいで約250円。
すぐ荷物を送ってくれて、助かりました。

そして、3年半ぶりのホーチミン市も、新しい高いビルや橋などが出来ていて、経済が発展していることを感じました。

ランドマーク81、ベトナムで一番高いビル

ちなみに、英系ファンド運用会社ビナキャピタルにより、ベトナムの経済展望に対する楽観的な見方と、株価が今後上昇していくとの見通しを示し、2020年代のベトナム経済は、その後数十年にわたるグローバルバリューチェーンへのつながりを始めた1970年代日本経済との相似性があると評価しました。
なお、ベトナムの国内総生産(GDP)成長予測を大幅に上方修正しており、ベトナムは今年+8%の成長をすると期待する経済専門家も多いです。

ベトナムのオンラインショッピング

経済が発展しているし、若いものが多いし、インターネット利用者も多いため、オンラインショッピングの利用率が伸びています。
EC市場の22年売上高は+20%増の2.35兆円に達する見通しです。
調査により、ベトナムのインターネット利用者は人口の75%、インターネット利用者のうち74.8%がオンラインショッピングを利用しているそうです。
購入が最も多いのは、衣料品・履物・化粧品、家庭用品、IT・電子機器、書籍・花・ギフト、食品などで、注文に使用するデバイスは携帯電話が91%で最も多いです。

市場調査各社は、ベトナムのECは今後も引き続き成長し、2025年に390億USD(約5兆5800億円)規模に到達し、シンガポールと並んで、インドネシアの1040億USD(14兆8700億円)に次ぐASEAN2位になると予想しています。
今回、ベトナムに滞在した時、ベトナム大手通販サイトShopeeでオンラインショッピングを試してみて、スムーズに物を購入できました。

以上が今回のベトナム帰省で、私が感じた変化していることでした。
今後、ベトナムの発展を期待し、いつか弊社のサービスもインドネシアやベトナムなど東南アジア市場へ進出できたら良いなと思っています。

直接つたえることの重要性

こんにちは。
突然ですが、みなさんはお店にお問合せを送ったことがありますか?

今まで、不良品のお問合せや、対応の不備で使うものだと思っていましたが、良かった点や要望を伝えるといった使い方を最近はしています。

直接きもちをお店に伝えることでうれしい発見があったので、ご紹介いたします。

現場の成果を伝えられる

服屋の店員さんの対応が丁寧でよかったため、本部に伝えたいと思い、お問合せを送りました。

自分は一度店内を見てから、用があったら声をかける方が買い物しやすく、店員さんはそのような接客をおこなってくれました。
質問への丁寧な対応、取りにくい場所の服をとってくれる、セール時の計算方法など買い物の終了まで見ていただいたことなど、具体的にしていただいたことを記載しました。

また、ほめることだけが目的ではなく、この感謝の気持ちがその方の評価につながればいいと思って、具体的なスタッフの詳細と評価につなげてほしいことを書きました。

お店からの返事には、お店利用への感謝と、教育の成果がでていることがわかったと書かれていました。

どういうことかというと、コロナ禍で接客スタイルを変えていたようです。
以前のように距離の近い接客ができない中で、どうすればお客様に満足してもらえるのか考えながら教育をしていたそうです。
今回、直接「満足した」と聞けたことで、スタッフに教育が身についていること、しっかりと成果としてでていることに安心していました。

お返事がいただけたことがまず嬉しく、伝えたかったことが本部にも現場スタッフにもきちんと伝わったことも嬉しく、また同じ店に行ってみようという気持ちになれます。

要望を伝えられる

直接、ご要望を送るのも効果的です。映画館で映画を見ることが好きなので、映画館にも要望をよく送っています。

映画館に上映を延長してほしい場合、直接、電話や問い合わせで伝えることがいちばん効果的だそうです。
新作ラッシュで先のスケジュールが決まっている場合もありますが、それが終わったらまたいれてくれる場合や、隙間時間に上映をする場合も多くあります。

映画館で見たいけれど、平日昼しかやっていない。土曜の夜しかいけない・・・という場合は、土曜の夜の上映を希望する旨をぜひかいてみてください。
好きな映画はなるべく映像が良くて音響がいいシアターで見たいので、そのシアターをいずれ割り当ててくれないかと、自分は伝えています。

ひとりの意見なんて迷惑かもしれない、と考えるかもしれません。ですが、映画に関しては、今までやっていなかった時間にやってくれる!この時間なら見られる!という方がいると思います。

需要がある、ということを直接伝えることは、かなり影響があることです

まとめ

ご要望を送る際にためらいがちですが、最終的な判断をするのは受取った側です。
なので、あまり気にせずにきもちを伝えたいということを中心に考えた方がいいでしょう。

また、良かった点に関しても、問い合わせの処理の負担にしたくはないため、読んでくれさえすればいい、お返事はどちらでも構わないことを必ず書いています。

自分が元気になりたいときに、お礼のメールを繰り返し見たり、またあらたに良かったお店にきもちを伝えたりしています。
実際、クレームを受け取ることはあっても、良かった点を声として受け取ることは少ないようです。

開発として自分が携わっているらくらくーぽんでも、お客様からいただいたご要望を実装しています。
どんな機能があればもっと使っていただけるだろうか、と話し合いますが、こういった機能があるとうれしいというお声があると、具体的に想像ができます。

また、サポート業務をしていた時に、お礼としていただいたメッセージを今もたまに見て、仕事のモチベーションアップにつなげています。
弊社システムを使ってくれるお客様がいると実感しやすく、よりよいものをはやく皆さんに届けられるように頑張っています。

送ったことが、読んでくれた方へのモチベーションアップにもつながれば嬉しいですね。
ぜひ、何か小さなことでも、満足したらその気持ちをお店に伝えてみてください!

CSSだけで要素の有無を判別できる!:has() 疑似クラスを解説

CSSを設計するときに、特定の子要素を持つ親要素のみスタイルを当てたい場合どうしていましたか?例えば、画像を持つカードと画像を持たないカードでデザインを切り分けたい場合です。

一般的な対応は「jQueryの:has()を利用して親要素にクラスを付与する」でしょうか。
もしくは、「HTMLに出力する時点でクラスを付与できるように工夫し、複数パターンのスタイルを用意する」でしょうか。

どのような対応でも一手間かかったものが、CSS擬似クラスだけで実現できるようになりました。

私は首を長くして待っていたこの機能をご紹介します。

:has擬似クラスの使い方

基本的な使い方は擬似クラスと同じになります。

.card:has(img) {
  /* img要素を持つ.cardのスタイルを記述します */
}

特定の要素(クラスなども指定可能)を持つ親要素にスタイルを実装する機能です。
記述はシンプルですが、CSSだけで完結できるところに大きな価値があります。

:not()擬似クラスと組み合わせることもできます(あまり実用的ではないと思います)。

.card.not(:has(img)) {
  /* img要素を持たない.cardのスタイルを記述します */
}

冒頭で例に出した、カードの画像を持つ持たないでスタイルを切り替えるデモを用意しました。

デモのHTMLを確認するとわかりますが、画像の有無によってHTMLにクラスを付与などは行なっておりません。

単純な記述ですが、CSSでロジックを扱えるようになりました。
これまでの対応と比べると、コストが大幅に下がりますね。

2022年9月時点でのブラウザ対応状況

Can I Useより抜粋

Chrome、Edgeは105(2022年9月時点での最新版)であれば対応していますね。
Safari(iOS含む)は 15.4以上であれば対応済み。
しかしFirefoxが対応していませんね、今のところ今後の対応予定もなさそうです。

現場で使う場合は注意が必要です。
いますぐ使いたい場合はポリフィルを使いましょう。

もしくはCSSの@supportsルールで切り分けましょう。

@supports selector(:has(*)) {
    /* :has対応ブラウザならばこの中のスタイルを適応します。 */
}

jQueryの:hasを使用している環境下では注意が必要

jQueryで:has()を用いていると、挙動がおかしくなることが報告されているようです。
単純にjQueryの:has()を使っているからダメというわけではなく、特定の条件下で起きるようです。

ブラウザ、CSS、jQueryそれぞれで対応しなきゃね、と話されているようですが、対応の具体的な予定はまだ出ていない模様です(2022年9月現在)。

まとめ

CSS界隈では渇望されていた機能がついに使える!と盛り上がっていたのですが、現時点で安易に使うのはやめた方がよさそうです。

テストコードを書いた感想としては、同じ機能を実装するコストがすごく下がったことを実感できたので、ぜひ現場でも使いたいと思いました。

CSSは力技でもなんとかなることが多いですが、知っていれば実装コストを下げられる機能があることを知ってもらいたくて紹介しました。

:has()に関しては、また続報があれば紹介するかもしれません。

Amazonの新しいAPI、SP-APIをとにかく動かしてみる

アマゾンのこれまでのAPI、MWSが廃止されたため弊社でも新しいアマゾンのAPI、SP-APIへの対応が必要となりました。
弊社でも移行は完了しましたが、これがいたるところにトラップがあり思ったようにスムーズにいきませんでした。
これからSP-APIを利用する方の力に少しでもなれればと思い今回ブログに掲載することにしました。

関連記事も随時追加しています。

SP-API自体はまったく難しくなくいたって普通のAPIなのですが、アマゾンの開発資料の特徴から、なんでこうなるかなぁというくらい実装の難易度がめちゃくちゃ高いAPIとなってしまっています。合わせて返却されるエラーも原因を特定するには貧弱過ぎて泣きます。

大きな問題点が3点

  1. 英語のマニュアルを翻訳しただけのようなマニュアルのためUS版の情報のままだったりと日本利用の場合置き換えなければそのままでは動かないトラップがところどころに存在します。そのためマニュアル通りにやってるのになぜということが頻繁に発生します。
  2. 構成がわかりにくい。順番通りにやっていけば完了するというものではありません。ところどころに情報が飛んでいて、あっちいってこっちいってとマニュアルを何度も読み返して読み解いていかなければなりません。英語圏の人はこれがわかりやすいのかなぁ...疑問です。
  3. エラーが発生しても詳細がわからないため原因の特定が難しい。これもきつい。「Bad Request」と返却されるだけで全然詳細がわかりません。MWSではOKだった場合も同じデータを投げるとSP-APIではこのエラーになる場合があるのでエラーの特定がほんと難しいです。
    ※その後の補足ですが、Javaの場合はApiExceptionでエラーを受け取ることでSP-APIからのエラー詳細が取得できることがわかりました。ちょっと自分のスキル不足を露呈してしまいました。^^;

とにかくわかりにくいので、この通りやればとりあえずSP-APIを動かせるというものを今回ブログに記載します。

前提条件

 

今回はとにかく動かすということで一番簡単なpostmanによる動作確認まで行っていきます。

  1. IAMユーザー作成
  2. IAMユーザーにSP-API利用権限付与
  3. アプリクライアントの追加
  4. postmanを使ったアクセストークンの発行
  5. postmanを使った注文情報取得
  6. 実際の実装方法


1. IAMユーザー作成

SP-APIを利用するためには、IMAユーザーを作成する必要があります。
IMAとはなんぞやとなりますが、とにかくSP-APIを利用するためにはSP-APIの利用権限をもつAWSのアカウントが必要でそのためのアカウントの作成だと思ってもらえばよいです。
IAMのコンソールに移動してください。
https://us-east-1.console.aws.amazon.com/iamv2/home?region=us-east-1#/home

1-1. アクセス管理>ユーザーを開き「ユーザーを追加」をクリックしてユーザの追加を行います。

 

1-2. 「ユーザー名」を入力します。なんでもいいです。自分の管理しやすい名前で、今回は「my-sp-api」にしてみました。
AWS認証情報タイプを選択にて「アクセスキー・プログラムによるアクセス」にチェックを入れ「次のステップ:アクセス権限」をクリックし次のページに進みます。

 

1-3. この画面では特に何もせず「次のステップ:タグ」をクリックし次のページに進みます。

 

1-4. この画面でも特に何もせず「次のステップ:確認」をクリックし次のページに進みます。

 

1-5. 警告が表示されますが無視で大丈夫です。この画面でも特に何もせず次に進みます。「ユーザーの作成」をクリックします。

 

1-6. 「アクセスキーID」「シークレットアクセスキー」はのちほど必要になるので、控えておきます。

※「アクセスキーID」はこの画面以外でもいつでも確認できますが、「シークレットアクセスキー」はここで控え忘れた場合は再発行を行うことになります。

 

1-7. ユーザーが追加されました。
この時点ではユーザーが追加されましたがSP-APIを利用する権限はこのユーザーに付与されていません。
この後の処理でこのユーザーにSP-API利用権限を付与していきます。

 

2. IAMユーザーにSP-API利用権限付与

対象のユーザーにSP-APIの権限を付与する処理を行います。

2-1. 対象のユーザー名をクリックします。ここでは「my-sp-api」をクリック

ここでユーザーのARNが表示されます。これは後のアプリクライアント追加で必要になります。

「インラインポリシーの追加」をクリックして次に進みます。

 

2-2. 「ポリシーを作成」をクリックして次に進みます。

 

2-3. 「JSON」タブをクリックします。

 

2-4. JSONタブを選択しテキストボックスに以下テキストを入力します。

これがユーザーにSP-API利用権限を付与する魔法の記述になります。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:*:*:*"
        }
    ]
}

入力後、「ポリシーの確認」をクリックし次のページへ進みます。

 

2-5. 名前に適当な名前を付けます。なんでもよいです。今回は「ExecuteSP-API」としてみました。
入力し「ポリシーの作成」をクリックし次のページに進みます。

ここまででやっとSP-APIが利用できるアカウントの作成の完了となります。

ここから実際に作成したIAMアカウントを利用してSP-APIを利用していきます。

 

3. アプリクライアントの追加

アマゾンセラーセントラルからアプリクライアントを追加します。

右上の歯車マークを選択し、「ユーザー権限」を選択、画面下部の「開発者認証情報を表示」をクリックし「デベロッパーセントラル」を表示します。

3-1. 「新しいアプリクライアントを追加」をクリックします。

 

3-2. 項目を入力します。

アプリ名、適当でOKです。今回は「my-sp-api」を設定、APIタイプは「SP API」を選択

「IAM ARN」は2-1.で表示された「ユーザーのARM」を入力してください。

この入力により、アプリとAWSアカウントが紐づきます。

とりあえずのテストなのですべてのロールにチェックします。こちら後から自由に変更可能です。

入力が完了したら「保存して終了」をクリックし次に進みます。

 

3-3. デベロッパーセントラルのアプリに、アプリ名「my-sp-api」が追加されました。

ここからSP-APIを利用するための情報を取得します。

対象アプリ名右のプルダウンリストから「承認」を選択します。

 

3-4. 「アプリを承認」をクリックします。

 

3-5. 「リフレッシュトークン」が発行されます。

 

3-6. デベロッパーセントラルの対象のアプリ名右の「LWA認証情報」の表示をクリックします。

 

3-7. 「クライアントID」「クライアント機密情報」が表示されます。

ここまででやっと、SP-APIを利用するための準備と情報が集まりました。

SP-API利用用に登録したクライアントアプリの「リフレッシュトークン」、「クライアントID」、「クライアント機密情報」を使ってSP-APIを利用します。

4. postmanを使ったアクセストークンの発行

今回はとりあえずSP-APIを使ってみるということで一番手っ取りばやいpostmanを使った方法で行います。

postmanはWeb上で無料で利用できる、リクエストを送り、レスポンスを受信することができるツールです。https://www.postman.com/

他にもいろいろリクエストを送りレスポンスを受信するツールはありますが、このpostmanはなんとSP-APIを利用するための認証部分が実装されています。
実はSP-APIを利用するためにはこの認証部分が一番やっかいです。
自前で実装する場合はかなりしんどいです。
postmanはその部分を一手に引き受けてくれるのでとりあえずSP-APIを使ってみてどんな動きをするのか確認するにはもってこいです。
またpostmanではリクエストの共有機能があり、すでに用意されているSP-API用のリクエストが利用できるのですぐにいろいろなAPIを試すことができ、利用方法もリクエストデータから確認することができます。

https://www.postman.com/restless-capsule-266764/workspace/amazon-spapi/documentation/14782630-4937b543-c1db-4eaa-8682-f8bef8263bf7

ただし利用するためには登録したクライアントアプリの「リフレッシュトークン」、「クライアントID」、「クライアント機密情報」を利用してSP-APIを利用するための「アクセストークン」を生成して取得する必要があります。

ここではそのアクセストークンの生成の手順を記載していきます。

 

4-1. postmanを開いたら、上の「Workspaces」から 「Create Workspace」をクリックして新しいワークスペースを作成します。

 

4-2. ワークスペース名も何でもよいです。自分の好きな名前を付けてください。

Visiblitityについてはとりあえず自分が確認するだけなのでPersonalを選択しておきます。

この辺りは利用目的によって使い分けてください。

 

4-3. ワークスペースが作成されたので実際のリクエストを作成していきます。

 

4-4. 左の「Collection」を選択し「+」マークをクリックし、新しいコレクションを作成します。

 

4-5. 「New Collection」の右側の点々をクリックして、「Add Request」をクリックすると「New Request」が作成されます。

 

4-6. ここから実際のSP-APIへのアクセスになります。
まず最初にSP-APIのAPIを利用するためのアクセストークンの取得を行います。

生成された「New Request」はそのままでも構いませんがわかりやすいよう名前を「Get Token」に変更しています。

「GET」を「POST」に変更
「Enter request URL」にはSP-APIのアクセストークン取得のためのURL「https://api.amazon.com/auth/o2/token」を入力します。

 

4-7. 「Query Params」に各種値を入力します。

KEY:grant_type    VALUE:refresh_token (固定値です。)
KEY:refresh_token  VALUE:リフレッシュトークン(3-5.で取得)
KEY:client_id     VALUE:クライアントID(3-6.で取得)
KEY:client_secret   VALUE:クライアント機密情報(3-6.で取得)

上記をパラメータに入れると、自動で上部のURLの後ろにパラメータが付与されます。すべて入力し「Send」ボタンをクリックすると下部にレスポンスが返却されます。

下部に「access_token」が返却されていれば、アクセス成功です。これでアクセストークンが取得できました。

このアクセストークンは一定時間有効なSP-APIの認証情報となります。このアクセストークンにてSP-APIのAPI利用が可能となります。

次はこのアクセストークンを使ってのSP-APIでの注文情報取得です。

 

5. postmanを使った注文情報取得

postmanのSP-APIへのアクセス情報がまとめられています。

これは公式から提供されているのかな??ちょっとそこはわかりませんがとにかく便利です。

https://www.postman.com/restless-capsule-266764/workspace/amazon-spapi/documentation/14782630-4937b543-c1db-4eaa-8682-f8bef8263bf7

このリンクをクリックすると「Amazon SPAPI」のグローバルなpostmanのコレクションが表示されます。これをそのままコピーして利用すれば必要なパラメータなど大体設定されているので、SP-APIの利用がとても簡単に行えます。

 

5-1. SP-APIの各API機能が用意されています。

 

5-2. とりあえず今回テストしたい「get Orders」が含まれる「Selling Partner API for Orders」を「Amazon SPAPI」のパブリックスペースからExportして「My SP-API」の自分のスペースに取り込みます。
ExportをクリックするとExportダイアログが表示されます。

 

5-3. ファイルの形式は最新を選択で、「Export」ボタンをクリックするとローカルにJsonファイルが作成されます。

 

5-4. エクスポートしたデータを取り込むワークスペースに切り替えます。
今回は先にトークン作成で作成したワークスペース「My SP-API」に取り込みたいので「My SP-API」を選択して切り替えます。

 

5-5. 上の方にある「Import」ボタンをクリックすると、インポートファイルを選択するダイアログが表示されます。先ほど「Amazon SPAPI」の「Selling Partner API for Orders」からエクスポートしたデータを選択しダイアログ右下の「Import」ボタンをクリックします。

 

5-6. 「My SP-API」に「Amazon SPAPI」の「Selling Partner API for Orders」がインポートされました。

 

5-7. ここから、実際に注文情報を取得する手順です。
ここでまず1つ目のトラップがあります。
GETに設定されているURL初期値では以下となっていますがこれはUSの設定です。

https://sellingpartnerapi-na.amazon.com/orders/v0/orders

これを

https://sellingpartnerapi-fe.amazon.com/orders/v0/orders

に直してください。

違いは

https://sellingpartnerapi-fe.amazon.com/orders/v0/orders

ここです。

Paramsを選択してパラメータを設定してください。

パラメータの設定は

KEY:MarketplaceIds VALUE:A1VC38T7YXB528 (日本だとこのマーケットプレイスIDになります。)
KEY:CreatedAfter  VALUE:2022-08-01(テストなので適当です。この日付以降に作成された注文が取得されます。)

 

5-8. 次にAuthorizationを選択します。

Typeから「AWS Signature」を選択します。ここがAWSの認証処理をpostmanが勝手に行ってくれる便利な部分になります。逆に言うと、postmanを利用しないSP-API利用の場合ここの処理の実装が一番大変で肝となる部分です。

 

5-9.

AccessKey:アクセスキーID   (1-6.で取得)
SecretKey:シークレットアクセスキー  (1-6.で取得)
AWS Region:us-west-2   (日本での利用の場合はこの値になるはずです。)
Service Name:execute-api (SP-APIの利用名で固定です。)

最後に「Headers」の設定を行います。

 

5-10. この設定が終わればついにSP-APIで注文取得が行えます。
となんとここでトラップがあります。

「Amazon SPAPI」の「Selling Partner API for Orders」の「get Orders」をそのままインポートしたわけですが、設定されているKEY値のままだと動きません。なぜに...アメリカ仕様なのかどうかわかりませんがとにかく修正します。

x-amazn-access-token

x-amaz-access-token
に変更します。
x-amazn-access-token
この「n」いりませんゴミです。

KEY:x-amaz-access-token   VALUE:アクセストークン(4-7.で取得したアクセストークンを貼り付けます。時間が経っていると有効期限切れの場合があります。その際は再度アクセストークンを発行してください。)
他の項目はそのままデフォルトでOKです。

5-11. これでついにSP-APIで注文情報を取得するために準備が整いました。
右上の「Send」ボタンをクリック!
下部に注文情報が含まれるレスポンスBodyが返却されれば成功です。

最初のSP-API実行まで、ほんとに長かった。

6. 実際の実装方法

6-1. ここまででpostmanによるSP-APIの実行を説明してきました。
今回は注文情報取得でしたが他の処理についても同様に確認することが可能です。
実際の実装の前に簡単にpostmanで確認できるので先にpostmanで動きを確認してからサービスの実装に取り組むと効率が良いです。
今回は実際の実装までは記載していませんが、反響があれば今後SP-APIの実践、サービスへの組み込み方法など以下の記事についても執筆も行っていきます。

 

 

 

プログラミング言語のトレンドは?

弊社が提供しているあるお客様のシステムがかなりの年数経過をしており、またインフラ周りも古くなってきているので、リプレイスの提案を行うことにしました。

いざ何の言語で作ろう?となったときに思い浮かぶのは今まで扱ったことのある言語やフレームワークを踏襲するのが一番早いです。

ですが、弊社は新しいトレンドはどんどん取り入れていこう!という方針ですので、この機会に最新や流行の新しい形を取り入れたいと考えています。

では今現在(2022年11月)のトレンドは?ということで調べてみました。

検索数から見るランキング

アメリカのRedMonk社が、2022年第3四半期のプログラミング言語ランキングを発表しています。

このランキングはプロジェクトホスティングサイト「GitHub」の利用状況と、開発者向けQ&Aサイト「Stack Overflow」で話題になった件数を調査した結果を基に作成されているそうです。

「Stack Overflow」は行き詰まってgoogleさんで検索すると、いつも検索結果に出てくるのでお世話になっていますw

プログラミング言語ランキング
https://redmonk.com/sogrady/2022/10/20/language-rankings-6-22/
より
順位言語順位言語
1JavaScript11Swift
2Python12R
3Java13Objective-C
4PHP14Shell
5C#14Scala
6CSS16Go
7C++17PowerShell
8TypeScript18Kotlin
9Ruby19Rust
10C19 Dart

今四半期の推移のストーリーは、これまでの数回の推移と同様に、安定性です。すぐに説明するいくつかの注目すべき例外を除けば、近年の言語運動のルールは、ほとんど運動がないということです。実際、ここにある 20 の言語のうち 17 は、3 四半期連続で安定しています。

https://redmonk.com/sogrady/2022/10/20/language-rankings-6-22/

考察にもあるように以前からある言語が上位を占めています。

自分的には11位以下にわりと新しめのものが入っていますが、世の中的にはそうではないのかもしれません。

Pythonが1位だと思っていたのですがね。JavaScriptだとは...

またPHPがこんなに上にあるとは思いませんでした。

開発者数から見るランキング

もう一つ、TIOBE Softwareが月次で発表する人気プログラミング言語ランキング「TIOBE Index」というものもあります。

プログラミング言語を使用する開発者数、コース数、サードパーティベンダー数、GoogleやWikipediaなどよく使われる検索エンジンの数値から、言語の人気度を割り出した月間のランキングです。

下記は最新の2022年11月発表のものです。

https://www.tiobe.com/tiobe-index/より

TIOBE Programming Community Indexの上位にランクインしているプログラミング言語は長期的に見るとそれほど変動していない。TIOBE SoftwareはこれまでKotlin、Dart、Juliaなどのプログラミング言語がトップ20位に常時ランクインする可能性は指摘してきたが、依然としてそれは実現していない状況にある。

こうした状況に対し、TIOBE Softwareは、Rustがそのポジションを確保するかもしれないとの見解を示した。Rustは2022年10月にトップ20に入り、そして2022年11月もトップ20に入っている。Rustは実行速度が高速であるにもかかわらず安全であるというという相反しやすい性能が備わっており、TIOBE Softwareはその特徴を「ユニーク」だと評価している。

https://news.mynavi.jp/techplus/article/20221110-2508215/

こちらは予想通りのPython1位でした。

シェアも伸びているようで17%はスゴイですね。Pythonが使われいない分野はなくなっているような状況になってきているのかもしれません。

2つのランキングから見えたトレンドは、どちらのランキングを見ても上位は変動しない安定期に入っているようです。

それでも上位の中ではPythonが伸びて、PHPが下落しているようです。

MATLAB?

私が知らない言語が入っていました。

どうやら分析やディープラーニングで使う言語のようです。

MATLAB(マットラブまたはマトラボ)は、アメリカ合衆国のMathWorks社が開発している数値解析ソフトウェアであり、その中で使うプログラミング言語の名称でもある。MATLABは、数値線形代数、関数とデータの可視化、アルゴリズム開発、グラフィカルインターフェイスや、他言語(C言語/C++/Java/Python)とのインターフェイスの機能を有している。MATLABは、主に、数値計算を扱う事ができるが、追加のオプションSymbolic Math Toolboxを使うことで、数式処理の能力を得ることができる。2019年時点でMATLABのユーザー数は400万人を超えており、100,000 以上の企業・政府・大学で、工学・理学・経済学など幅広い分野に利用されている。

https://ja.wikipedia.org/wiki/MATLAB

2つのランキングから見えたトレンド

どちらの結果を見ても安定期、変動していない、という文言から、直近では新しいものが一気に広がるということはないようです。

Java、Python、C、PHP

このあたりには一日の長があるということになりそうです。

その中でも検索数からは2位、利用者数では1位の

Python

機械学習や人工知能、AIといったところではまず名前が上がってきますからね。

今さらながらPythonとはどんな言語なんでしょう。

Pythonとは1991年にオランダ人のグイド・ヴァンロッサムというプログラマーによって開発され、オープンソースで運営されているプログラミング言語です。イギリスBBCのコメディ番組『空飛ぶモンティ・パイソン』がPythonという名前の由来であるようです。一括りにPythonといってもその用途は様々で、組み込み開発や、Webアプリケーション、デスクトップアプリケーション、さらには人工知能開発、ビッグデータ解析などと多岐に渡ります。

Pythonのプログラミング言語としての主な特徴は、少ないコードで簡潔にプログラムを書けること、専門的なライブラリが豊富にあることなどが挙げられます。

https://www.internetacademy.jp/it/programming/programming-basic/what-is-python.html

敷居も低い印象ですし、また読みやすさ、書きやすさを重視された言語ですよね。

私も勉強がてら触ったことはありますが、業務で導入したことはないですね。

また少し前に良く聞いた「Rust」や「Swift」「Kotlin」は伸びていないですね。

「Rsut」は

Rust(ラスト)は、性能、メモリ安全性、安全な並行性を目指して設計されたマルチパラダイムのプログラミング言語である。C言語、C++に代わるシステムプログラミング言語を目指しており[2]、構文的にはC++に似ているが[3]、「ボローチェッカー」(borrow checker) で参照の有効性を検証することによってメモリ安全性を保証できる。Rustはガベージコレクションなしでのメモリ安全性を達成しており、必要な場面で参照カウントを使うこともできる

https://ja.wikipedia.org/wiki/Rust_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E)

「Swift」は

Swift(スウィフト)は、AppleのiOSおよびmacOS、Linux、Windowsで利用出来るプログラミング言語である。Worldwide Developers Conference (WWDC) 2014で発表された。Apple製OS上で動作するアプリケーションの開発に従来から用いられていたObjective-CやObjective-C++、C言語と共存できるように、共通のObjective-Cランタイムライブラリが使用されている。

https://ja.wikipedia.org/wiki/Swift_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E)

「Kotlin」とは

Kotlinとは、Androidアプリを開発するための代表的なプログラミング言語です。Kotlinは2011年に登場したばかりの言語で、Kotlinが登場するまで、Androidアプリを開発するにはJavaが使用されていました。そのJavaを改良して、開発された言語がKotlinです。

https://hnavi.co.jp/knowledge/blog/kotlin-development/

フロント側ではJavascriptからtypescriptへ、その中でもReactJSやVewJSなどのライブらりやフレームワークを使ってのSAPになるでしょうか。

新しい言語の選択

上でも述べたように結局はフレームワーク次第ということもあります。

JavaのSpring FrameworkやRubyのRuby on Rails、PHPのLaravel

このあたりは鉄板ですかね。

で私が取り組もうとしているのは

Go言語を学んでみたい。

ですね。

何年か前にも話題となっていましたが、イマイチ伸びていないですよね。

でも弊社のメインであるWeb開発やアプリ開発でも利用できるので、まだまだ将来性があるのではないでしょうか。

Go言語のフレームワークとなれば

Echo

でしょうかね。

正直、年を取って覚えることにおっくうになってしまいがちですが、チャレンジ精神はいつまでも持ち続けたいと思います。

頑張れ自分!