前两天偶遇编程猫推介(为什么没有中文的编程?), 第一眼感觉像Scratch, 求证之下确实, 并且据说有改良. 今天非常粗浅地尝试一下, 限于水平没有做出很炫的效果, 不过颇有些发现.

首先上最终效果图:

选择了无趣的斐波那契函数, 在这个主打动画和互动效果的开发环境里应该属于非常边缘的用户.

从头开始说. 到官网上之后, 第一感觉是内容比较杂, 因为是冲着这个中文编程开发环境去的, 试了几个链接才从"创作"进到一个类似的但是英文的界面. 因为只有这里像帖子中的截图, 于是试了"多语言"选项, 还好有"简体中文". 也许因为笔者浏览器是英文界面, 因此默认英文环境?

"编程猫MOD编程器"好像是与MineCraft的集成, 但好像生成的代码需要到"Box"(代码岛)运行, 时间有限就没有体验, 但希望网站的入口能够调整一下, 或者把各个功能的关系介绍清楚一点.

(补记: 经官方论坛指出 "mod编辑器做的mod是放进多玩魔盒的手机版《我的世界》中体验的,《代码岛》是一个3D图形化编程平台哈,和mod编辑器没关系")

进入环境后, 比较了一下Scratch界面, 发现中间的控件栏作了修改, 采用了顶层菜单, 点击向右展开:

与原版的布局(下)相比, 猜测是出于最大化编辑框的考虑, 也许会对移动设备更加友好, 但副效应是展开时容易遮住编辑框.

尝试过程中, 发现一些控件(如比较/逻辑运算)整合到了一个控件, 是个不错的改进:

相比原版:

通过类似整合, 减少了控件数量, 另外增加了不少辅助功能的控件, 如"是整/质/正/负数", 等等. 不过, 在控件排序上, 还有改进空间, 比如运算部分:

头尾两部分都是逻辑运算, 但中间插了一块数值运算.

在定义函数的过程中, 发现参数好像是自动识别类型, 输入是文本的话, 比如"测试", +1操作就返回"测试1", 输入2就返回3. 原版貌似是声明参数类型.

体验中最意外的是, 编程猫支持了函数返回值功能, 而即使还未发布的Scratch 3.0(Scratch 3.0 - Scratch Wiki)好像也没有这个功能. 经斐波那契测试, 感觉对于绝大多数这个环境中的用途应该足够了(函数内的局部变量没有深入测试, 不确定是否支持).

在汉化方面, 还有改进的空间, 比如控件的演示字符串不少还是Hi, Hello, abc之类; 显示(2/0)的结果是"Infinity", 仍然在某些地方把block翻译成"积木"(原版的汉化版如此. 编程猫已经把新建block改成了"函数", 是个改进)

总体感觉, 开发者的改进是颇费了一番心思, 并且对缺失的关键功能做了突破. 个人比较期待的一个功能是, 函数发布/共享, 以及官方维护一个比较常用的"标准库", 比如更复杂的动作(转圈, 加速等等), 更复杂的运算等等. 这样就离一个实用的游戏/动画引擎和开发环境更近了一步. 而且利用他人开发的函数库还可以促进团队开发理念和开源互助的推广, 也是少儿教育的一个重要部分.

瞩目!

2018-02-06 编程猫IDE体验:对Scratch的改进的更多相关文章

  1. Scala 深入浅出实战经典 第66讲:Scala并发编程实战初体验

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  2. http://www.cnblogs.com/TankXiao/archive/2012/02/06/2337728.html

    http://www.cnblogs.com/TankXiao/archive/2012/02/06/2337728.html

  3. 新手C#构造函数、继承、组合的学习2018.08.06/07

    构造函数,是一种特殊的方法.主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中.特别的一个类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同 ...

  4. 新手C#属性set,get的学习(部分转)2018.08.06

    public class person { public string name; } public class person { public string Name { set; get; } } ...

  5. 新手C#面向对象的学习2018.08.06

    class Person//声明一个Person类 { //类中的声明与Main中不同,类中声明的是字段而不是函数. public string gender; public string name= ...

  6. leetcode面试题 02.06. 回文链表,解题心路

    目录 leetcode面试题 02.06. 回文链表,解题心路 1.题目描述 2.java语言题解一 3.java语言题解二 4.C语言题解一 leetcode面试题 02.06. 回文链表,解题心路 ...

  7. 02网络编程( socket套接字+TCP粘包 )

    目录 02 网络编程 一.socket套接字编程 二.简易代码模板 2.1 服务端 2.2 客户端 三.通信循环及代码优化 四.黏包现象 五.struct模块 六.简易版本报头 七.上传文件数据 * ...

  8. 2018.12.02 Socket编程之初识Socket

    Socket编程主要分为TCP/UDP/SCTP三种,每一种都有各自的优点,所以会根据实际情况决定选用何种Socket,今天开始我将会逐步学习Socket编程,并将学习过程记录于此. 今天学习的是TC ...

  9. 并发编程的模型分类(转载于https://link.zhihu.com/?target=http%3A//www.54tianzhisheng.cn/2018/02/28/Java-Memory-Model/)强烈推荐!

    在并发编程需要处理的两个关键问题是:线程之间如何通信 和 线程之间如何同步. 通信 通信 是指线程之间以何种机制来交换信息.在命令式编程中,线程之间的通信机制有两种:共享内存 和 消息传递. 在共享内 ...

随机推荐

  1. 7.ASP.NET MVC 5.0中的Routing【路由】

    大家好,这一篇向大家介绍ASP.NET MVC路由机制.[PS:上一篇-->6. ASP.NET MVC 5.0中的HTML Helpers[HTML帮助类] ] 路由是一个模式匹配系统,它确保 ...

  2. nginx: [emerg] getpwnam("nginx") failed

    搭建LNMP环境的时候,在安装完Nginx后启动测试Nginx服务时发现报如下错误: nginx: [emerg] getpwnam("nginx") failed 这是由于没有创 ...

  3. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 8.仪表盘 Dashboard(horizon)安装配置

    仪表盘Dashboard(horizon)是一个web接口,使得云平台管理员以及用户可以管理不同的Openstack资源以及服务.这个部署示例使用的是 Apache Web 服务器. 节点配置信息说明 ...

  4. Lucene 4.X 全套教程

    http://www.cnblogs.com/forfuture1978/category/300665.html Lucene 4.X 倒排索引原理与实现: (3) Term Dictionary和 ...

  5. Windows10开发手记-RelativePanel使用详解

    Windows 10已于7月29号面向全球发布,同时Universal Windows Platform(UWP) SDK也已正式放出,配合VS 2015我们可以开发出通用的Windows App. ...

  6. dart之旅(二)- 内建类型

    目录 number 类型 字符串 布尔类型 像大多数语言一样,dart 也提供了 number,string,boolean 等类型,包括以下几种: numbers strings booleans ...

  7. linux arm 交叉编译ACE(ubuntu16.04)

    解压ace包 tar zxvf ACE_6.1.0.tar.gz 在终端设置环境变量 sudo gedit /etc/profile 在打开的内容添加 export ACE_ROOT=/home/xx ...

  8. 基于Flume的日志收集系统方案参考

    前言 本文将简单介绍两种基于Flume的日志收集系统可能的架构方案,可根据不同的实际场景参考使用. 方案一 示例图如下: 说明: 每个日志源(http上报.日志文件等)对应一个Agent-c用于收集对 ...

  9. js禁止鼠标右键功能

    1.禁止指定元素 document.getElementById("active-intro").oncontextmenu = function () { event.retur ...

  10. Java并发编程笔记之AbstractQueuedSynchronizer源码分析

    为什么要说AbstractQueuedSynchronizer呢? 因为AbstractQueuedSynchronizer是JUC并发包中锁的底层支持,AbstractQueuedSynchroni ...