- Jakarta EE 8 release – the future is now!
- JavaFX 13 released – the new frontier for OpenJFX
- Amazon Releases Container Monitoring for Amazon ECS, EKS, and Kubernetes via CloudWatch
- France and Germany have said they will oppose Facebook’s digital currency
- Java Concurrency: Synchronization
- Jakarta EE 8: Past, Present, and Future
- Improving Code Readability
- Q&A on the Book Continuous Delivery in Java
- Best Practices for Event-Driven Microservice Architecture
- Column Level Encryption in GCP
- Kids are surrounded by AI. They should know how it works.
- Quarkus and GraalVM: Booting Hibernate at Supersonic Speed, Subatomic Size
- Are We Really Cloud-native?
- Building Resilient Serverless Systems
- Three Approaches to Scaling Machine Learning with Uber Seattle Engineering
- François Chollet: Keras, Deep Learning, and the Progress of AI | Artificial Intelligence Podcast
- Java Concurrency: CopyOnWrite
- OutOfMemoryError related JVM arguments
- How Lyft Creates Hyper-Accurate Maps from Open-Source Maps and Real-Time Data
- State Of AI And Machine Learning In 2019
- CockroachDB: Architecture of a Geo-distributed SQL Database
- Seven Steps to Design, Build, and Scale an AI Product
- Vijay Kumar: Flying Robots | Artificial Intelligence (AI) Podcast
- Google Releases a Managed Service for Microsoft Active Directory (AD) in Beta
- JEP 359: Records
- JEP 360: Sealed Types
- JEP draft: Throughput post-write barrier for G1
- GraphQL Java Example for Beginners [Spring Boot]
- Autowiring in Spring
- Who? Why? What? Fix? – System.gc()
- 8 Benefits of Unit Testing
- Using GraphQL to Improve Data Hydration in our Customer Care Platform and Beyond
- How to Use Chaos Engineering to Break Things Productively
- Continuous Delivery for Machine Learning
- Reactive Spring
- GOTO 2019 – Journeys To Cloud Native Architecture: Sun, Sea & Emergencies by Nicki Watt
- The ethics of AI – dealing with difficult choices in a non-binary world
- Yann LeCun: Deep Learning, Convolutional Neural Networks, and Self-Supervised Learning | AI Podcast
- OpenJFX to follow Java and migrate to GitHub
- Git 2.23 Offers Significant Updates
- Project Loom: Java With a Stronger Fiber
- JEP drafts – removing Concurrent Mark Sweep garbage collector & ZGC support for macOS
- GraalVM 19.2.0: Preview the Java Flight Recorder plugin
- DBT: A new way to transform data and build pipelines at The Telegraph
- Strategic Domain-Driven Design
- Jeremy Howard: fast.ai Deep Learning Courses and Research | Artificial Intelligence (AI) Podcast
- Microsoft acquires leading AdoptOpenJDK contributor jClarity
- The Inaugural JakartaOne Virtual Conference Goes Lives with the Release of Jakarta EE 8
- Gradle 5.6 released – faster Groovy compilation, new plugin for Java test fixtures & more
- java.lang.Record: Draft Specification
- When to Use JSR 305 for Nullability in Java
- Java Cloning: Even Copy Constructors Are Not Enough
- Jakarta EE & Eclipse MicroProfile – ongoing discussions
- Upgrading Pinterest operational metrics
- Heather VanCura, Director of the JCP, Speaks to InfoQ on the JCP 20th Anniversary
- How Kubernetes Works
- Empathy is a Technical Skill
- Serverless Java
- Science at Uber: Applying Artificial Intelligence at Uber
- Getting Started in Deep Learning with TensorFlow 2.0
- From Research to Production With PyTorch
- Keoki Jackson: Lockheed Martin | Artificial Intelligence (AI) Podcast
- Amazon Opens a New Region in Bahrain – AWS Middle East
- VS Code 1.37 updates with new product icons. Yea or nay?
- So long, Spring Boot 1.x!
- JEP 358 – Improved NullPointerExceptions
- Java Web Start is dead, long live Java Web Start!
- Quarkus – what’s next for the lightweight Java framework?
- What Every Developer Should Learn Early On
- Introducing Pinqueue3.0, Pinterest’s next-gen content moderation platform
- GOTO 2019 – Practical API Design by Ronnie Mitra
- Leaving the Ivory Tower: Research in the Real World
- Deep Learning for Recommender Systems
- Paola Arlotta: Brain Development from Stem Cell to Organoid | Artificial Intelligence (AI) Podcast
In today’s article, I want to discuss a dualism present in programming languages.
What it could be?
I think in some matter we can notice this fact in very different aspects related to the programming languages. But, today I want to discuss how different programming languages process array indexes.
So there are programming languages with 0-based and 1-based indexes for arrays. The programming languages with 0-based indexes apply zero-based numbering approach when the initial element of a sequence is assigned the index 0.
The programming languages with 1-based indexes are based on the one-based numbering approach when the initial element of a sequence is assigned index 1.
A first group includes programming languages so-called general-purpose programming languages. There are some of them in the table below:
|Array Index Type||Programming Language|
At the same time, programming languages with 1-based indexes have mostly mathematical nature and used for mathematical and scientific calculations. Some of the examples right below in the table:
|Array Index Type||Programming Language|
Despite on hot discussions regarding which approach is correct I would say it was historically confirmed that both of them work well.
The 0-based indexes are good because of their native support of pointer arithmetic and their half-open intervals nature. The 1-based indexes have real-life indexing approach (we use the same approach every day), have good support for the processing of vectors and matrices (linear algebra) in the form of arrays.
So, there is no right answer, which approach is better, as always – context does matter.
Note: I know that there is another small set of programming languages (Ada, Pascal) which supports N-based array types when their minimal indexes are fully defined by the programmer. Such behavior is an exceptional case and I decided to omit it in this article.
- Brian Goetz Speaks to InfoQ about Proposed Hyphenated Keywords in Java
- Design Patterns for Microservices
- Debunking the Five Most Popular Software Development Myths
- Disasterpiece Theater: Slack’s process for approachable Chaos Engineering
- Becoming a Fully Buzzword Compliant Developer
- Work Together Anywhere: What Great Remote Teams Look Like
- Kevin Scott: Microsoft CTO | Artificial Intelligence (AI) Podcast
- George Hotz: Comma.ai, OpenPilot, and Autonomous Vehicles | Artificial Intelligence (AI) Podcast
- Apache NetBeans 11.1 Released as Top Level Project
- IntelliJ IDEA 2019.2 brings Java 13 Preview features, services tool window & much more
- Docker Enterprise 3.0 Brings Docker Kubernetes Services, New Lifecycle Automation Tools, and More
- Google Acquires Elastifile to Expand Its Cloud File Storage Offering
- OpenJDK Project Valhalla Releases LW2 Prototype
- Java Concurrency: AtomicInteger
- Running Single-file Programs without Compiling in Java 11
- Jakarta EE & MicroProfile – two names, one family?
- Microservice Architecture and Design Patterns for Microservices
- Top 10 AWS Architect Interview Questions 2019
- Fairness, Privacy, and Transparency by Design in AI/ML Systems
- How AI and satellite data are helping farmers waste less water
- Driving Technology Transformation at @WeWork
- Gustav Soderstrom: Spotify | Artificial Intelligence (AI) Podcast